2009-02-25 90 views
1

是否有一種簡單方法可以確定VirtualEarth地圖中最大和最小可見緯度和經度? 鑑於它不是一個平坦的表面(VE使用墨卡託投影,它看起來像)我可以看到數學變得相當複雜,我想有人可能知道一個片段來完成這一點。VirtualEarth:確定最小/最大可見緯度/經度

回答

2

找到了! VEMap.GetMapView()返回邊界矩形,甚至適用於3D模式(邊界甚至不是矩形)。

var view = map.GetMapView(); 

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

使用虛擬地球互動SDK,你可以看到如何將像素點轉換爲的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) 
} 

走遠一點看這裏:http://dev.live.com/virtualearth/sdk/在菜單中去:獲取地圖信息 - >將像素轉換爲LatLong

要獲得最大/最小可見LatLong's,可以爲地圖的每個角落調用DoPixelToLL方法。

+0

綜觀PixelToLatLong的文檔,貌似GetMapView正是我需要的: 爲了獲得在3D模式下的地圖的邊界區域,調用VEMap.GetMapView方法。 – Serguei 2009-02-25 18:17:32