« Haversine (rtl) » : différence entre les versions

De Wiki1000
m (Remplacement du texte — « http://frp.sage.fr/wiki1000/medias/images/stock/versionlatest-32x32.png » par « http://frp.sage.fr/wiki1000/medias/images/stock/version650-32x32.png »)
m (Remplacement du texte — « category:Latest » par « Category:Version700 »)
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
{{Version650}}
{{Version700}}
<source lang='delphi'>Function haversine(lat1,long1,lat2,long2):double;</source>
<source lang='delphi'>Function haversine(lat1,long1,lat2,long2):double;</source>


Ligne 44 : Ligne 44 :
[[category:RTL Conversion]]
[[category:RTL Conversion]]
[[Category:TGeolocation]]
[[Category:TGeolocation]]
[[category:Latest]]
[[Category:Version700]]

Dernière version du 13 janvier 2015 à 10:15

{{#images:version700-32x32.png|stock}} <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é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 :

<source lang='delphi'> 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; </source>

Voir aussi:

{{#if:Développement DSM|

{{#if:Développement DSM|— Développement DSM |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}