Mã của tôi hiển thị điểm đánh dấu từ GeoJSON, khi tôi được phóng to vào mức thu phóng 10, nó tải tệp GeoJSON, nhưng làm cách nào để tránh làm nổi bật cùng điểm đánh dấu? Có cách nào để kiểm tra xem có tồn tại một điểm đánh dấu trên một địa điểm cụ thể không? MãOpenLayers và GeoJSON, không nhân dấu trên cùng tọa độ
map.events.register("zoomend", null, function(){
if(map.zoom == 10)
{
var bounds = map.getExtent();
console.log(bounds);
var ne = new OpenLayers.LonLat(bounds.right,bounds.top).transform(map.getProjectionObject(),wgs84);
var sw = new OpenLayers.LonLat(bounds.left,bounds.bottom).transform(map.getProjectionObject(),wgs84);
var vectorLayer = new OpenLayers.Layer.Vector();
map.addLayer(vectorLayer);
$.getJSON('ajax.php?a=markers&type=json&sw=('+sw.lon+','+sw.lat+')&ne=('+ne.lon+','+ne.lat+')',function(data){
//$.getJSON('test.json',function(data){
var geojson_format = new OpenLayers.Format.GeoJSON({
'externalProjection': wgs84,
'internalProjection': baseProjection
});
vectorLayer.addFeatures(geojson_format.read(data));
});
}
});
Vâng, câu hỏi hay - nhưng không phải mất thêm sức mạnh? –
+1 trên Chiến lược BBOX, nhưng về giới hạn mức thu phóng thì sao? Điều đó có sẵn trong Chiến lược không? –
Ràng buộc mức thu phóng không có sẵn theo mặc định. Bạn có thể ghi đè lên lớp này ('OpenLayers.Strategy.BBOX') để làm điều đó. Xóa tất cả các tính năng (giải pháp thứ hai của tôi) sẽ không mất nhiều chi phí hơn so sánh mọi tính năng để biết liệu chúng có phải được thêm hay không. – tonio