检索Leaflet的当前比例值

时间:2016-03-09 10:34:00

标签: javascript leaflet

是否可以获取Leaflet组件的当前比例值?

Map scale of Leaflet

上图显示" 300 km"或者" 100英里"我想通过一种方法检索。现有文档仅显示如何使用特定选项添加缩放控件:http://leafletjs.com/reference.html#control-scale

1 个答案:

答案 0 :(得分:1)

在低缩放级别(当你看到世界的很大一部分时)时要小心缩放比例。

您看到的比例实际上对地图视图的中心水平线有效。对于地图的角落来说,它甚至有点错误!

如果您只想在其他地方“复制”视觉比例,您只需创建另一个比例控制并提取其HTML容器,而不是将其嵌入到地图中:

document.getElementById("myNewContainerId").appendChild(
    L.control.scale(options).onAdd(map)
);

如果要读取缩放控件的实际像素长度和文本,可以通过缩放控件的内部_mScale.style.width_mScale.innerHTML属性检索它们。如果您想要英制值而不是公制值,请将_mScale替换为_iScale

否则,如果您希望能够测量地图上2个点之间的某个距离,则应该使用myLatLng.distanceTo(otherLatLng) method,这样会更准确,因为它不仅会使用正确的比例myLatLng实际纬度,但如果它位于不同的纬度,也会校正otherLatLng路径上可能的不同比例。

  

返回使用Haversine公式计算的给定LatLng的距离(以米为单位)。见description on wikipedia