javascript - 如何用leaflet.draw和CRS.Simple画圆

标签 javascript leaflet leaflet.draw

我正在使用 leaflet.draw 插件,使用 L.CRS.Simple 处理简单的图像。 除了绘制圆圈之外,绘图工具栏工作正常。

http://playground-leaflet.rhcloud.com/kapi/edit?html,output

使用L.CRS.Simple时,如何使用Leaflet.draw插件在Leaflet map 上绘制圆圈?

最佳答案

问题在于使用 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

希望这有帮助!!!

关于javascript - 如何用leaflet.draw和CRS.Simple画圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44403775/

相关文章:

javascript - 使用 AngularJS 创建目录的详细信息页面

leaflet - Proj4Leaflet 重投影就像在 openlayers 中一样

javascript - 如何将我的 leaflet.draw 单位从英制更改为公制?

javascript - 如何在传单中绘制图形元素(节点和边)?

leaflet - 如何在传单绘制中禁用(不删除)工具栏按钮

javascript - 我可以将 bool 值或原始值转换为可观察值吗?

javascript - 在 Canvas 中绘制裁剪后的图像

javascript - 如何从 javascript 控制台动态下载和运行 javascript 脚本?

javascript - 如何在传单中使用很棒的图标库

r - Using leaflet with large data - 美国所有县的ACS数据