我需要找到一组给定坐标中给定坐标点的最近坐标(lat,lon)。与此问题类似: Find the closest coordinate from a set of coordinates
但是我还需要确保它在同一条线上直接前进#34; (具有一定的最大偏差,比如15度)。
一种方法是获得最近的点 - 然后检查每个点的原点和它之间的度数,看它是否小于最大值,这是最好的方法吗?
答案 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
并与您面对的角度进行比较