2009-02-25 6 views
1

est-il un moyen facile de déterminer la latitude maximale et minimale visible et la longitude dans une carte VirtualEarth? Étant donné que ce n'est pas une surface plane (VE utilise la projection Mercator il ressemble) Je peux voir le calcul obtenir assez compliqué, je me suis dit que quelqu'un sait peut-être d'un extrait à cette fin.VirtualEarth: déterminer min/max latitude visible/longitude

Répondre

2

Je l'ai trouvé! VEMap.GetMapView() retourne le rectangle de délimitation, fonctionne même pour le mode 3D ainsi (où la limite est même pas un rectangle).

var view = map.GetMapView(); 

latMin = view.BottomRightLatLong.Latitude; 
lonMin = view.TopLeftLatLong.Longitude; 
latMax = view.TopLeftLatLong.Latitude; 
lonMax = view.BottomRightLatLong.Longitude; 
1

Utilisation du Virtual Earth SDK Interactive, vous pouvez voir comment convertir un point de pixel à un objet LatLong:

function GetMap() 
{ 
    map = new VEMap('myMap'); 
    map.LoadMap(); 
} 

function DoPixelToLL(x, y) 
{ 
    var ll = map.PixelToLatLong(new VEPixel(x, y)).toString() 
    alert("The latitude,longitude of the pixel at (" + x + "," + y + ") is: " + ll) 
} 

un coup d'oeil plus ici: http://dev.live.com/virtualearth/sdk/ dans le menu allez à: Obtenir la carte info - > pixel Convertir LatLong

pour les années Max/Min visible LatLong, vous pouvez appeler la méthode DoPixelToLL pour chaque coin de la carte.

+0

regardant la documentation PixelToLatLong, ressemble GetMapView est ce que je dois: Pour obtenir la zone de délimitation d'une carte en mode 3D, appelez la méthode VEMap.GetMapView. – Serguei

Questions connexes