HaversineBox (rtl)
De Wiki1000
(Différences entre les versions)
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 ») |
|||
Ligne 1 : | Ligne 1 : | ||
− | {{ | + | {{Version700}} |
<source lang='delphi'>procedure haversineBox(lat,long,distance:Double; var latmin,latmax,longmin,longmax:double);</source> | <source lang='delphi'>procedure haversineBox(lat,long,distance:Double; var latmin,latmax,longmin,longmax:double);</source> | ||
Version du 13 janvier 2015 à 10:49
procedure haversineBox(lat,long,distance:Double; var latmin,latmax,longmin,longmax:double);
Cette fonction calcule la boite englobante d'une position de taille exprimée en kilomètre.
lat,long | Le jeu de coordonné au centre de la boite |
latmin,latmax,longmin,longmax | Les coordonnées min et max de la boite. |
Pseudo code :
const cEarthRadiusKM = 6371.0009; procedure haversineBox(lat,long,distance:Double; var latmin,latmax,longmin,longmax:Double; E:double=cEarthRadiusKM); var dd:Double; begin dd := RadToDeg(distance/E); latmin := lat-dd; latmax := lat+dd; dd := RadToDeg(distance/E/cos(degTorad(lat))); longmin := long-dd; longmax := long+dd; end;
var latmin,latmax,longmin,longmax:double; begin haversineBox(38.897147,-77.043934,0.5,latmin,latmax,longmin,longmax); showMessage(Format('latmin:%0.4f latmax:%0.4f longmin:%0.4f longmax:%0.4f',[latmin,latmax,longmin,longmax])); end;
Voir aussi: