Javascript 已定义标记组的getBounds()
我想根据共享属性将mapBox地图缩放到特定的标记组 我有一张带有一堆标记的地图,从这组中我为两个独立的区域构建了两个数组,如下所示:Javascript 已定义标记组的getBounds(),javascript,leaflet,mapbox,Javascript,Leaflet,Mapbox,我想根据共享属性将mapBox地图缩放到特定的标记组 我有一张带有一堆标记的地图,从这组中我为两个独立的区域构建了两个数组,如下所示: var regionOne = [], regionTwo = []; map.markerLayer.on('layeradd', function(e){ var marker = e.layer, feature = marker.feature; switch (feature.properties.region) {
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(如描述和文档所述),这样我就可以应用getBounds()
方法,但只需运行
var regionGroup = new L.featureGroup(regionOne);
即使
regionOne
是mabox标记对象的有效数组,也会引发错误。是否确定已填充regionOne
和regionTwo
数组
在您的函数中,似乎无法访问功能
对象。试一试:
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;
}
});
编辑:
需要将层
分配给每个阵列,而不是功能
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;
}
});
是的,我在前面的代码中定义了
功能
,但没有将其包含在代码段中。我编辑了我的问题以反映这一点。请在快照上方给出编辑后的答案。名称可能会混淆,但featureGroup
需要一个ILayers
数组,就像layerGroup
一样。