再次添加时,传单多边形不起作用

时间:2014-10-14 16:04:43

标签: polygon leaflet geojson

我正在使用带有Leaflet的PruneCluster,我发生了自定义逻辑,试图在创建集群时添加和删除多边形。它主要起作用,但是当我离开页面时,我有一个问题,然后回来。我需要先前放在地图上的所有标记,然后再添加。对于没有geoJson图层的标记,这似乎工作正常,但是当我尝试添加一个geoJson图层时,我得到Uncaught TypeError: Cannot read property 'min' of undefined这是由Leaflet中的这个触发的:

_getBitCode: function (/*Point*/ p, bounds) {
    var code = 0;

    if (p.x < bounds.min.x) { // left
        code |= 1;
    } else if (p.x > bounds.max.x) { // right
        code |= 2;
    }
    if (p.y < bounds.min.y) { // bottom
        code |= 4;
    } else if (p.y > bounds.max.y) { // top
        code |= 8;
    }

    return code;
},

我的自定义代码添加形状,当标记未聚集时,如下所示:

pruneCluster.PrepareLeafletMarker = function (leafletMarker, data) {
  if (data.isShape) {
    map.addLayer(data.geoJsonLayer);
  }
  leafletMarker.on('click', function (e) {
    GenerateRrosePopup(e, data.popupContent);
    if(data.isShape) {
      map.fitBounds(data.boundsForFit);
    }
  });
  leafletMarker.setIcon(data.icon);
};

map.addLayer(data.geoJsonLayer)是造成这个问题的原因。我不确定为什么,因为我的geoJson对象看起来像我期望的那样。

为什么这个相同的代码最初会添加geoJson图层,但是当我回到页面并尝试添加我之前添加的点和形状时会失败?

1 个答案:

答案 0 :(得分:0)

这在Leaflet 0.8-dev

中得到修复