Mój kod pokazuje znaczniki z GeoJSON, kiedy jestem powiększony do poziomu 10 powiększenia, ładuje się plik GeoJSON, ale jak mogę uniknąć same znaczniki? Czy istnieje sposób sprawdzenia, czy istnieje już znacznik w określonym miejscu? KodOpenLayers, i GeoJSON, nie mnożymy znaczników na tych samych współrzędnych
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));
});
}
});
Cóż, dobre pytanie - ale czy to nie wymaga dodatkowej mocy? –
+1 przy strategii BBOX, ale co z ograniczeniem poziomu powiększenia? Czy jest to dostępne w strategii? –
Ograniczenie poziomu powiększenia nie jest domyślnie dostępne. Możesz zastąpić tę klasę ('OpenLayers.Strategy.BBOX'), aby to zrobić. Usunięcie wszystkich funkcji (moje drugie rozwiązanie) nie będzie kosztować więcej niż porównywanie wszystkich funkcji, aby wiedzieć, czy trzeba je dodać. – tonio