【问题标题】:OpenLayers v6.3.1 distance between two locationsOpenLayers v6.3.1 两个位置之间的距离
【发布时间】:2020-05-14 13:13:28
【问题描述】:
  • 在他们的API 上有一个名为 getDistance() 的函数,当我将此函数与两个点/位置一起使用时,它会显示一条通知,提示该函数无法识别。

知道如何在 OpenLayers 6.1.3 中解决这个问题

【问题讨论】:

  • 你用的怎么样?,你用的是什么坐标系?,能贴出你的代码吗?

标签: openlayers distance


【解决方案1】:

如果你的坐标是 LonLat,最简单的方法是

var distance = ol.sphere.getDistance([loc1.long, loc1.lat], [loc2.long, lat2.lat]) / 1000;

【讨论】:

    【解决方案2】:

    好吧,我可以通过其他两个函数找到距离: 1.LineString() 2.getLength()

    首先创建两个位置:

    var location_1 = ol.proj.fromLonLat([loc1.long, loc1.lat]);
    var location_2 = ol.proj.fromLonLat([loc2.long, lat2.lat]);
    

    第二次在这两点之间画一条线:

     var line = new ol.geom.LineString([location_1 , location_2]);
    

    然后将线的长度转换为公里:

     var distance = Math.round(line.getLength()  / 1000 * 100) / 1000;
    

    距离为您提供两个地点之间的实际距离(以公里为单位)。

    【讨论】:

    • line.getLength() 没有给出真正的距离,它给出了仅在赤道处才是正确的投影单位的距离——在纬度 60 度处,它给出的距离是实际距离的两倍。对于真正的问题,您需要使用 ol/sphere.getLength 示例中使用的 openlayers.org/en/master/examples/measure.html
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多