2009-02-25 83 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