2013-07-30 2 views
2

Je joue actuellement un peu avec Android et le suivi GPS et ainsi de suite.BoundingBox autour d'une coordonnée géographique

J'ai découvert, que je dois appeler l'API OSM avec les points d'angle de la limite que je veux obtenir des POI par exemple. Je voudrais obtenir, que je reçois mes cooredinates actuels de l'appareil (qui fonctionne déjà) et puis obtenir un peu de pois de l'OSM pour la boîte de délimitation où ma position actuelle est le centre.

je pouvais imaginer une fonction comme ça:

Carte getboundingbox publique (mètres int double, à double lat,);

MAIS je ne sais pas comment calculer cette boîte englobante. Quelqu'un pourrait-il me donner quelques indices s'il vous plaît?

acclamations, chrétien

Répondre

1

Je suppose que long et lat sont données en quelques secondes.

D'abord, vous devez calculer la largeur du rectangle en secondes. Une seconde est 30,9 mètres sur l'équateur, pour d'autres latitudes, multiplier par cos (LAT), afin de le convertir en quelques secondes vous procédez comme suit:

double widthSeconds = meters/(30.9 * cos(lat)); 

Deuxièmement, sachant que le centre de la boîte, il est facile de calculer les coordonnées des coins:

enter image description here


EDIT: l'exemple ci-dessus fonctionne pour l'Europe et l'Asie. Pour les autres emplacements, les directions des axes de coordonnées peuvent être différentes.

+0

Cela semble assez facile comme vous le décrire :-) –

+0

@Phpdna 'width' doit être converti car il est donné en mètres, et' latitide' avec 'longitude' sont donnés en secondes. –

+0

@Phpdna basé sur le fait qu'un seul paramètre est passé, j'ai supposé que la hauteur est la même que la largeur. –

Questions connexes