VirtualEarth: определить минимальную / максимальную видимую широту / долготу - PullRequest
1 голос
/ 25 февраля 2009

Существует ли простой способ определения максимальной и минимальной видимой широты и долготы на карте VirtualEarth? Учитывая, что это не плоская поверхность (VE использует проекцию Меркатора, на которую это похоже), я вижу, что математика становится довольно сложной, я подумал, что кто-то может знать фрагмент кода для этого.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2009

Нашли это! VEMap.GetMapView () возвращает ограничивающий прямоугольник, даже работает в режиме 3D (где граница даже не является прямоугольником).

var view = map.GetMapView();

latMin = view.BottomRightLatLong.Latitude;
lonMin = view.TopLeftLatLong.Longitude;
latMax = view.TopLeftLatLong.Latitude;
lonMax = view.BottomRightLatLong.Longitude;
1 голос
/ 25 февраля 2009

Используя 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 для каждого угла карты.

...