Hiển thị thông tin đối tựơng và đối tựơng địa lý đựơc click chuột.
Để hiển thị lại đối tượng địa lý được chọn ta sử dụng một lớp ảo để tạo màu highlight cho đối tượng được click chuột. Lớp ảo chính là lớp chỉ phục trợ cho việc hiển thị lại kết quả chọn chứ không phải là lớp thoa tác.
Phương thức highlightFeatures trong project sẽ hỗ trợ cho phần việc này. Sau khi đã có được đối tượng địa lý được chọn ta cần phải xác định kiểu của đối tượng địa lý là kiểu đường, kiểu điểm hay kiểu vùng mà xác định lại kiểu hiển thị cho phù hợp. Do khi ta chức năng thực hiện đánh dấu vùng được chọn sẽ được tiến hành nhiếu lần nên lớp highlight phải liên tục được xóa và tạo lại để hiển thị thông tin dữ liệu cũ sẽ không bị sẽ không còn khi chọn xem thông tin đối tượng mới.
Phương thức highlightFeatures còn nhận vào 2 thông số là FeatureCollection và màu sắc hiển thị của đối tượng. FeatureCollection là một tập hợp các Feature. Vì phương thức này được sử dụng cho nhiều phương thức khác trong chương trình nên nhận vào FeatureCollection cho tổng quát, có công dụng trong nhiều trường hợp. Thực chất ở trong chức năng này thì FeatureCollection chỉ chứa có một Feature. Ta sử dụng feature được lấy ở bộ lọc để lấy kiểu feature kết hợp với màu sắc thể hiện lại trên màn hình.
Đoạn code dưới đây mô tả việc tái tạo kiểu dữ trên lớp highlight.
queryLayer.getFeatureSource().getSchema().getDefaultGeometry().
getType();
if(LineString.class.isAssignableFrom(geometryClass) ||
MultiLineString.class.isAssignableFrom(geometryClass)){
sy = ms.createLineSymbolizer(colorDisplay, 3);
}else
if(Point.class.isAssignableFrom(geometryClass) ||
MultiPoint.class.isAssignableFrom(geometryClass)){
sy = ms.createCustomPointSymbolizer("./images/HistorichausBlue.gif", 30);
}
else{
sy = ms.createPolygonSymbolizer(colorDisplay, Color.BLACK, 2, 1);
}
Để hiểu rõ hơn về phần hiển thị lớp highlight có thể vào phương thức highlightFeatures(FeatureCollection fc,Color colorDisplay) trong chương trình ở lớp LHaApplet_ToData.
Hình 3.29 Làm nổi bật đối tượng trên bản đồ
Hình trên là thực tế khi chạy chương trình, nếu đang đứng ở lớp Ủy Ban Xã là active, ta có thể xem được thông tin về xã thông qua vùng TextArea thông tin về đối tựơng được chọn.
Chia sẻ với bạn bè của bạn: |