【问题标题】:Retrieve current scale value of Leaflet检索 Leaflet 的当前比例值
【发布时间】:2016-03-09 10:33:59
【问题描述】:

是否可以获取 Leaflet 组件的当前缩放值?

上图显示了我想通过某种方法检索的“300 公里”或“100 英里”。现有文档仅显示如何使用特定选项添加比例控制:http://leafletjs.com/reference.html#control-scale

【问题讨论】:

    标签: javascript leaflet


    【解决方案1】:

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

    您看到的比例实际上对地图视图的中心水平线有效。地图的一角,它放置的位置甚至有点错误!

    如果您只是想在其他地方“复制”该 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

    【讨论】:

    • 如此真实!我们必须考虑地理(球面)坐标系。感谢您的信息。
    猜你喜欢
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 2021-05-26
    • 2019-10-13
    • 1970-01-01
    相关资源
    最近更新 更多