когда я работаю с GPS, я использую OpenLayers, поэтому я не знаю, является ли это хорошей практикой, но вы можете использовать некоторые функции 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
и сравнить с угломтуда, где вы стоите