我想基于共享属性将mapBox地图缩放到特定的一组标记。
我有一堆标记的地图,从那个组我为两个不同的区域构建了两个数组,如下所示:
var regionOne = [], regionTwo = [];
map.markerLayer.on('layeradd', function(e){
var marker = e.layer,
feature = marker.feature;
switch (feature.properties.region) {
case 'region-one':
regionOne.push(feature);
break;
case 'region-two':
regionTwo.push(feature);
break;
}
});
但是我坚持下一步。我需要将标记对象数组转换为featureGroup(如here所述并记录in the leaflet docs),以便我可以应用getBounds()
方法但只是运行
var regionGroup = new L.featureGroup(regionOne);
抛出错误,即使regionOne
是mabox标记对象的有效数组。
答案 0 :(得分:1)
您确定已填充regionOne
和regionTwo
数组吗?
似乎您的函数中无法访问feature
对象。试一试:
map.markerLayer.on('layeradd', function(e){
var layer = e.layer;
switch (layer.properties.region) {
case 'region-one':
regionOne.push(layer);
break;
case 'region-two':
regionTwo.push(layer);
break;
}
});
编辑:
需要为每个数组分配layer
,而不是feature
。
var regionOne = [], regionTwo = [];
map.markerLayer.on('layeradd', function(e){
var marker = e.layer,
feature = marker.feature;
switch (feature.properties.region) {
case 'region-one':
regionOne.push(marker);
break;
case 'region-two':
regionTwo.push(marker);
break;
}
});