从一组坐标中找到最接近的坐标"直线前进#34;

时间:2018-05-22 10:33:56

标签: javascript gps coordinates

我需要找到一组给定坐标中给定坐标点的最近坐标(lat,lon)。与此问题类似: Find the closest coordinate from a set of coordinates

但是我还需要确保它在同一条线上直接前进#34; (具有一定的最大偏差,比如15度)。

一种方法是获得最近的点 - 然后检查每个点的原点和它之间的度数,看它是否小于最大值,这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

当我使用gps时,我使用OpenLayers,所以我不知道这是一个很好的prectice但你可以使用一些OpenLayers功能来避免你的问题

<强> https://openlayers.org/en/latest/apidoc/ol.source.Vector.html#getClosestFeatureToCoordinate

像这样:

import Vector from 'ol/source/vector';
import Feature from 'ol/feature';
import Point from 'ol/geom/point';
var vector = new Vector();

for(each coordinate that you want){
     var feature = new Feature({geometry: new Point(yourCoordinate)});
     vector.addFeature(feature);
}

var closestFeature = vector.getClosestFeature();
var closestPoint = closestFeature.getGeometry().getCoordinates();

所以现在你只需要使用这样的东西

gist.github.com/conorbuck/2606166

并与您面对的角度进行比较