Google Планета Земля Определение уровня масштабирования по ограничительной рамке - PullRequest
7 голосов
/ 14 июля 2010

Я получил приложение Windows Forms, использующее Google Планета Земля, где пользователи могут рисовать на карте многоугольник, который используется в качестве геозоны.

Что я хотел бы сделать, так это уметь масштабировать полигон так, чтобы он удобно помещался на экране одним нажатием кнопки. Этакий зум, чтобы соответствовать функции.

Найти центр многоугольника и настроить камеру Google Планета Земля на эту широту / долготу очень просто.

Мне нужен алгоритм, который берет ограничивающую рамку lats \ longs, высоту экрана \ width, а затем определяет высоту для установки камеры.

Кто-нибудь имеет этот алгоритм или знает, где его можно найти?

Спасибо !!

1 Ответ

7 голосов
/ 19 июля 2010

Чтобы увеличить масштаб до многоугольника или любого другого KmlObject, возможно, проще всего использовать earth-api-utility-library .

См. Методы createBoundsView , setToBoundsView и особенно flyToObject

Например, где ge - это объект GEPlugin, а polygon - это KmlPolygon.

var gex = new GEarthExtensions(ge);
gex.util.flyToObject(polygon, { boundsFallback: true, aspectRatio: 1 } );
...