我在尝试运行getBounds()和包含Circle形状的()时收到以下错误。
leaflet.js:7 Uncaught TypeError: Cannot read property 'layerPointToLatLng' of undefined
我可以将它与其他形状一起使用,但圆圈很顽固。我从另一个问题尝试了这个solution,但没有成功。
这里是我对多边形和矩形形状的代码:
drawnLayers.eachLayer(function(l) {
if (type == 'circle') {
// console.log(l.getBounds().contains(layer.getBounds()));
} else {
if (l.getBounds().contains(layer.getBounds())) {
isDonut = true;
l._latlngs.push(layer.getLatLngs());
l.redraw();
$('#map-info').append("<br>New Polygon: <pre>" +
JSON.stringify(l.getLatLngs(), null, 2) + '</pre>');
}
}
});
答案 0 :(得分:0)
l.getBounds().contains(layer.getBounds())
getBounds()
是一种仅针对传单0.7.x中的polyline / polygon / rectangle的方法
自版本1.0.0起添加到圆形状中 - 请参阅leaflet reference versions
要解决此问题,您有2个选项
getRadius()
等圈子使用其他方法,如果形状包含其他形状,请自行计算就个人而言,我会将传单库升级到1.0.3(我做的很简单,我的项目没有任何兼容性问题)