Haversine (rtl)

De Wiki1000
(Différences entre les versions)
(Page créée avec « <source lang='delphi'>Function haversine(lat1,long1,lat2,long2):double;</source> Cette fonction calcule la distance en kilomètre entre deux coordonnées de lieu exprimé... »)
 
m (Remplacement du texte — « category:Latest » par « Category:Version700 »)
 
(5 révisions intermédiaires par un utilisateur sont masquées)
Ligne 1 : Ligne 1 :
 +
{{Version700}}
 
<source lang='delphi'>Function haversine(lat1,long1,lat2,long2):double;</source>
 
<source lang='delphi'>Function haversine(lat1,long1,lat2,long2):double;</source>
  
Ligne 37 : Ligne 38 :
  
 
Voir aussi:
 
Voir aussi:
 
+
* [[haversineBox (rtl)|haversineBox]]
 
* [http://en.wikipedia.org/wiki/Haversine_formula Haversine formula]
 
* [http://en.wikipedia.org/wiki/Haversine_formula Haversine formula]
  
 
{{Footer|Développement DSM}}
 
{{Footer|Développement DSM}}
 
[[category:RTL Conversion]]
 
[[category:RTL Conversion]]
 +
[[Category:TGeolocation]]
 +
[[Category:Version700]]

Version actuelle en date du 13 janvier 2015 à 11:15

version700-32x32.png

Function haversine(lat1,long1,lat2,long2):double;

Cette fonction calcule la distance en kilomètre entre deux coordonnées de lieu exprimés en degré.

Result La distance en KM entre les deux coordonnées.
lat1,long1 Le premier jeu de coordonné.
lat2,long2 Le second jeu de coordonné.

Pseudo code :

const cEarthRadiusKM = 6371.0009;
 
function haversine(lat1,long1,lat2,long2:Double; E:double=cEarthRadiusKM):double;
var slon,slat,a,c:Double;
begin
  lat1 := degToRad(lat1);
  long1 := degToRad(long1);
  lat2 := degToRad(lat2);
  long2 := degToRad(long2);
  //
  slon := sin((long2 - long1)/2);
  slat := sin((lat2 - lat1)/2);
  a := slat*slat + cos(lat1)*cos(lat2) * slon*slon;
  c := 2 * arctan2( sqrt(a), sqrt(1-a) );
  Result := E * c;
end;

Voir aussi:

Développement DSMDéveloppement DSM

Outils personnels