【发布时间】:2016-03-09 10:33:59
【问题描述】:
是否可以获取 Leaflet 组件的当前缩放值?
上图显示了我想通过某种方法检索的“300 公里”或“100 英里”。现有文档仅显示如何使用特定选项添加比例控制:http://leafletjs.com/reference.html#control-scale
【问题讨论】:
标签: javascript leaflet
是否可以获取 Leaflet 组件的当前缩放值?
上图显示了我想通过某种方法检索的“300 公里”或“100 英里”。现有文档仅显示如何使用特定选项添加比例控制:http://leafletjs.com/reference.html#control-scale
【问题讨论】:
标签: javascript leaflet
在低缩放级别(当您看到世界的很大一部分时)小心使用比例。
您看到的比例实际上对地图视图的中心水平线有效。地图的一角,它放置的位置甚至有点错误!
如果您只是想在其他地方“复制”该 visual 比例,您可以简单地创建另一个 Scale Control 并提取其 HTML 容器,而不是将其嵌入到地图中:
document.getElementById("myNewContainerId").appendChild(
L.control.scale(options).onAdd(map)
);
如果您想读取缩放控件的实际像素长度和文本,您可以通过缩放控件的内部_mScale.style.width 和_mScale.innerHTML 属性检索它们。如果您想要英制值而不是公制值,请将 _mScale 替换为 _iScale。
否则,如果您希望能够测量地图上 2 点之间的距离,您应该使用myLatLng.distanceTo(otherLatLng) method,这样会更准确,因为它不仅会在@ 处使用正确的比例987654329@ 的实际纬度,但如果将其放置在不同的纬度上,还可以修正通往 otherLatLng 的路径上可能存在的不同比例。
返回到使用 Haversine 公式计算的给定 LatLng 的距离(以米为单位)。见description on wikipedia
【讨论】: