2009-02-25 9 views
1

Gibt es eine einfache Möglichkeit, den maximalen und minimalen sichtbaren Längen- und Breitengrad in einer VirtualEarth-Karte zu bestimmen? Angesichts der Tatsache, dass es keine flache Oberfläche ist (VE verwendet Mercator-Projektion, wie es aussieht) kann ich sehen, dass die Mathematik ziemlich kompliziert wird. Ich dachte mir, dass jemand einen Schnipsel dafür wissen könnte.VirtualEarth: Bestimmen Sie den minimalen/maximalen sichtbaren Breiten-/Längengrad

Antwort

2

Es gefunden! VEMap.GetMapView() gibt das Begrenzungsrechteck zurück, funktioniert sogar im 3D-Modus (wo die Grenze nicht einmal ein Rechteck ist).

var view = map.GetMapView(); 

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

Mit der Virtual Earth Interactive SDK können Sie sehen, wie ein Pixelpunkt zu einem LatLong Objekt konvertieren: eine weitere

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) 
} 

Nehmen Sie hier: http://dev.live.com/virtualearth/sdk/ im Menü gehen: Get Info Karte - > Pixel in LatLong konvertieren

Um die Max/Min-LatLongs sichtbar zu machen, können Sie die DoPixelToLL-Methode für jede Ecke der Karte aufrufen.

+0

bei der Dokumentation der Suche in PixelToLatLong, sieht aus wie GetMapView ist das, was ich brauche: Um den Begrenzungsbereich einer Karte im 3D-Modus, rufen Sie die VEMap.GetMapView-Methode zu erhalten. – Serguei

Verwandte Themen