【发布时间】:2009-02-26 09:06:13
【问题描述】:
是否有一种简单的方法可以确定 VirtualEarth 地图中的最大和最小可见纬度和经度? 鉴于它不是一个平面(看起来像 VE 使用墨卡托投影),我可以看到数学变得相当复杂,我想有人可能知道一个 sn-p 来完成这个。
【问题讨论】:
标签: virtual-earth
是否有一种简单的方法可以确定 VirtualEarth 地图中的最大和最小可见纬度和经度? 鉴于它不是一个平面(看起来像 VE 使用墨卡托投影),我可以看到数学变得相当复杂,我想有人可能知道一个 sn-p 来完成这个。
【问题讨论】:
标签: virtual-earth
找到了! VEMap.GetMapView() 返回边界矩形,甚至适用于 3D 模式(边界甚至不是矩形)。
var view = map.GetMapView();
latMin = view.BottomRightLatLong.Latitude;
lonMin = view.TopLeftLatLong.Longitude;
latMax = view.TopLeftLatLong.Latitude;
lonMax = view.BottomRightLatLong.Longitude;
【讨论】:
使用 Virtual Earth Interactive 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,您可以为地图的每个角调用 DoPixelToLL 方法。
【讨论】: