我正在使用带有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图层,但是当我回到页面并尝试添加我之前添加的点和形状时会失败?
答案 0 :(得分:0)
这在Leaflet 0.8-dev
中得到修复