Рассчитать диапазон и высоту элемента Google Earth KML LookAt, чтобы он соответствовал всем элементам (полигонам) - PullRequest
3 голосов
/ 30 марта 2011

У меня есть несколько полигонов, нарисованных на поверхности в плагине Google Earth. Я генерирую KML из них.

Вопрос в том, как рассчитать параметры для LookAt, чтобы представление включало все многоугольники, когда они открыты на рабочем столе Google Планета Земля? Для широты и долготы это довольно просто - просто вычислите центр ограничительной рамки, но как насчет параметров высоты и диапазона?

Например, у нас есть два полигона:

1:
    40.724536 -74.001914
    40.724102 -74.001091
    40.723003 -74.002067
    40.723392 -74.002891
2:
    40.723186 -74.003112
    40.722843 -74.002311
    40.721977 -74.003036
    40.722320 -74.003738

Тогда lon и lat будут
долгота = (+40,724536 + 40.721977) /2=40.7232565
лат = - (74,001091 + 74.003738) /2=-74.0024145

Теперь, как рассчитать дальность и высоту?

1 Ответ

3 голосов
/ 20 августа 2011

Взгляните на служебную библиотеку Google Планета Земля API .Он расширяет функциональные возможности API-интерфейса Земли, предоставляя полезные вспомогательные методы, которые оборачивают для вас часто необходимые задачи.

Он включает в себя метод createBoundsView () , который создаст объект LookAt, настроенный для соответствия заданной ограничительной рамке в области просмотра.Делает именно то, что вам нужно, я думаю.например,

function flyToBox(max_x, max_y, min_x, min_y) {
  var bounds = new geo.Bounds([min_y, min_x], [max_y, max_x]);
  var options = {aspectRatio : $('#map3d').width() / $('#map3d').height(), scaleRange : 2};
  ge.getView().setAbstractView(gex.view.createBoundsView(bounds, options));
}
...