【发布时间】:2020-05-14 13:13:28
【问题描述】:
- 在他们的API 上有一个名为 getDistance() 的函数,当我将此函数与两个点/位置一起使用时,它会显示一条通知,提示该函数无法识别。
知道如何在 OpenLayers 6.1.3 中解决这个问题
【问题讨论】:
-
你用的怎么样?,你用的是什么坐标系?,能贴出你的代码吗?
标签: openlayers distance
知道如何在 OpenLayers 6.1.3 中解决这个问题
【问题讨论】:
标签: openlayers distance
如果你的坐标是 LonLat,最简单的方法是
var distance = ol.sphere.getDistance([loc1.long, loc1.lat], [loc2.long, lat2.lat]) / 1000;
【讨论】:
好吧,我可以通过其他两个函数找到距离: 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