我正在使用leaflet.draw插件,使用L.CRS.Simple
处理一个简单的图像。
除绘制圆圈外,绘图工具栏工作正常。
http://playground-leaflet.rhcloud.com/kapi/edit?html,output
如何在使用L.CRS.Simple
时使用Leaflet.draw插件在Leaflet地图上启用绘图圆圈?
答案 0 :(得分:4)
问题在于使用L.CRS.simple并试图画一个圆圈。 当绘制圆形时(L.Draw.circle_drawShape()),半径是根据L.LatLng.distanceTo的结果设置的,并且该距离实际上是根据L.CRS.Earth计算的
当使用L.CRS.Smple时,半径变得非常大,超出范围。 在绘制其他形状时,这不会成为问题,因为它们不使用L.LatLng.distanceTo方法。
作为一种解决方法,你可以做什么覆盖:
L.LatLng.prototype.distanceTo = function (currentPostion) {
var dx = currentPostion.lng - this.lng;
var dy = currentPostion.lat - this.lat;
return Math.sqrt(dx*dx + dy*dy);
}
这样就可以了。
以下链接详细解释了该问题: https://github.com/Leaflet/Leaflet.draw/issues/611
希望这有帮助!!!