定义的标记组的getBounds()

时间:2014-03-11 20:11:19

标签: javascript leaflet mapbox

我想基于共享属性将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标记对象的有效数组。

1 个答案:

答案 0 :(得分:1)

您确定已填充regionOneregionTwo数组吗?

似乎您的函数中无法访问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;
    }
});