Je suis en train de faire des mesures en utilisant la CPU moins possible, donc je suis en utilisant une constante multiplicatrice pour arriver à une valeur en mètres comme ceci:Comment mesurer la distance entre deux coordonnées avec moins de calc?
lat1, long1 = 1 Coordonnée
lat2, long2 = Coordonnée 2
DistV := abs(lat1-lat2); // Get a positive vertical value
DistH := abs(lon1-long2); // Get a positive horizontal value
DistGPS := sqrt(sqr(DistV) + sqr(DistH)); // Get a diagonal value
DistMeters := DistGPS*(111120*0.946); // 111120*0.946 = Constant multiplicator to meters
Cependant, les valeurs calculées vont être ajoutées aux mesures précédentes, ce qui rend nécessaire d'être précis. Est-ce que quelqu'un sait une meilleure façon de le faire?
A peine (je ne sais même pas où votre constante utilisée dans votre code provient de) :) Mais pour [formule Haversine] utilisation haute précision (https://en.wikipedia.org/wiki/Haversine_formula), sinon traiter avec moins de précision. Pour un travail sérieux avec ce type de données, nous utilisions des bibliothèques éprouvées comme GEOS et Proj4 pour les projections (elles sont toutes deux utilisées dans PostGIS). – Victoria
@Victoria La constante est une approximation très grossière de la longueur d'un arc, donné un angle, autour d'une sphère avec un rayon similaire à la moyenne de celle de la Terre. Le calcul est extrêmement approximatif - certainement pas à utiliser pour quelque chose de sérieux. –
@J ..., vraiment rude. Je suis sur le point de publier notre solution cartographique en open source cette année, donc je connais un peu ce genre de choses. Pourtant, vous ne pouvez pas battre ce code en performance avec une meilleure précision. Si vous le pouvez, faites le moi savoir (bien que nous travaillons avec plus de précision par défaut, pas Haversine) :) – Victoria