Mi código muestra marcadores de GeoJSON, cuando me acerco al nivel de zoom 10, carga el archivo GeoJSON, pero ¿cómo puedo evitar que vuelva a aparecer el mismos marcadores? ¿Hay alguna manera de verificar si ya existe un marcador en un lugar específico? El códigoOpenLayers, y GeoJSON, marcador de multiplicación en las mismas coordenadas
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));
});
}
});
Bueno, buena pregunta, pero ¿eso no tomaría potencia extra? –
+1 en BBOX Strategy, pero ¿qué hay de la restricción del nivel de zoom? ¿Está eso disponible en una estrategia? –
La restricción de nivel de zoom no está disponible de forma predeterminada. Puede anular esta clase ('OpenLayers.Strategy.BBOX') para hacerlo. La eliminación de todas las funciones (mi segunda solución) no costará más que comparar cada característica para saber si deben agregarse. – tonio