我的代码显示来自GeoJSON的标记,当我放大到缩放级别10时,它加载GeoJSON文件,但是如何避免声明输出相同的标记? 有没有办法检查某个特定地点是否已经存在标记? 代码OpenLayers和GeoJSON,在相同坐标上不乘法标记
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));
});
}
});
嗯,很好的问题 - 但不要额外的权力? –
BBOX策略中的+1,但缩放级别约束如何?这是否可用于战略? –
默认情况下缩放级别约束不可用。您可以重写此类('OpenLayers.Strategy.BBOX')来执行此操作。删除所有功能(我的第二个解决方案)不会花费比比较每个功能以了解它们是否必须添加。 – tonio