2010-06-29 3 views
3

J'ai une valeur de latitude/longitude et une valeur de distance. J'ai besoin de calculer une boîte de délimitation avec l'emplacement donné comme le centre. donc si la distance était de 200 mètres alors la boîte rectangle devrait être à 200 mètres devant, derrière, à gauche et à droite.Calcul du cadre de délimitation à l'aide de Javascript

Comment puis-je faire cela en utilisant JavaScript?

Répondre

3

Vous devez traduire votre coordonnée lat/long en une valeur x/y dans la projection cartographique que vous utilisez, puis vous pouvez calculer votre boîte englobante.

Je ne connais pas bien l'API Google Maps, et je ne sais pas exactement ce que vous voulez faire avec votre boîte. Mais peut-être GBounds, GMercatorProjection et GLatLngBounds peuvent être utiles. Et si l'API Google Maps ne prend pas en charge les calculs de la projection cartographique que vous utilisez, il peut être utile d'utiliser Proj4js. Et peut-être que vous voulez lire environ Map projections. Google Maps utilise par défaut Mercator projection.

3

Voici un certain nombre de fonctions javascript utiles pour travailler avec la latitude et la longitude:

http://www.movable-type.co.uk/scripts/latlong.html

Pour boîte englobante autour d'un point, un simple modification à l'aide the above javascript library pourrait être:

LatLon.prototype.boundingBox = function (distance) 
{ 
    return [ 
     this.destinationPoint(-90, distance)._lon, 
     this.destinationPoint(180, distance)._lat, 
     this.destinationPoint(90, distance)._lon, 
     this.destinationPoint(0, distance)._lat, 
    ]; 
} 

(Utilise le calcul "Destination point given distance and bearing from start point".)

Questions connexes