Установить начальный вид при открытии KMZ в GE

Я создаю файл KMZ в качестве вывода из моей программы (используя SharpKML). Как настроить начальный вид, чтобы при открытии этого файла в Google Планета Земля он центрировался и масштабировался вокруг моих данных?

Когда я открываю файл KML в GE, это поведение по умолчанию, но когда я открываю свой KMZ, браузер просто открывает весь мир по умолчанию, сосредоточенный на стране пользователя. Если я дважды щелкну основной KML в моем файле KMZ, я получу правильное масштабирование и центрирование вокруг своих данных. Как сделать так, чтобы это происходило автоматически, когда Google Планета Земля загружает KMZ?

Спасибо.


person Guy    schedule 05.06.2013    source источник


Ответы (3)


Если вы добавите LookAt или Camera к первому элементу в корневом файле KML (первый файл .kml в KMZ). Google Планета Земля запустится в этом месте, когда файл загружен.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Placemark>
    <name>Google office</name>
    <LookAt>
        <longitude>-122.087387</longitude>
        <latitude>37.422130</latitude>
        <altitude>0</altitude>
        <heading>-0.23</heading>
        <tilt>47.81</tilt>
        <range>115.5</range>
        <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
    </LookAt>
    <Point>
        <coordinates>-122.087461,37.422069</coordinates>
    </Point>
</Placemark>
</kml>

Если у вас есть несколько функций, добавьте <LookAt> в документ корневого уровня.

 <kml>
   <Document>
    <LookAt>
      ...
    </LookAt>
    <Placemark>
    </Placemark>
      ...
person JasonM1    schedule 06.06.2013
comment
Спасибо за ваш ответ, JasonM1, но я не знаю объемов данных, чтобы вычислить элемент LookAt в то время, когда его нужно добавить в корневой документ корневого KML. При использовании SharpKML, по-видимому, невозможно изменить корневой KML после создания архива KMZ. Кроме того, вычисление экстентов не будет тривиальным, поскольку мои наборы данных велики. Я ищу тот же эффект, что и двойной щелчок по корневому KML в списке в GE после загрузки GE. - person Guy; 06.06.2013

Также есть очень простой способ сделать это в Google Планета Земля/Google Планета Земля про:

  1. Просто щелкните правой кнопкой мыши и откройте свойства папки «Места».

  2. Перейдите на вкладку вида и нажмите Снимок текущего вида.

  3. Затем сохраните место для обновления kmz/kml.

Это обновляет <LookAt> на уровне, на котором вы щелкаете, то есть для точки на уровне метки, или вы можете сделать это на уровне папки.

person jcar    schedule 10.08.2016

Раньше я открывал свои файлы kmz в Javascript, и они автоматически центрировались, но теперь, несколько недель назад, мои карты открываются над северным полюсом. Я создал файлы kmz так давно, что не хочу их смотреть или редактировать. Могу ли я добавить какой-нибудь код, чтобы он работал, как раньше? У меня был до моего открытого кода

var overlay = new GGeoXml(\"http://www.mysite.com/data/file.kmz" ) ;
map.addOverlay( overlay ) ;

этот фальшивый код, который, кажется, ничего не инициализирует, но работает

var bounds = new GLatLngBounds();
// initialize bounds ??

var SWcorner= new GLatLng(parseFloat(87),parseFloat(-1));
var NEcorner= new GLatLng(parseFloat(89),parseFloat(1));
bounds.extend(SWcorner);
bounds.extend(NEcorner);
map.setCenter(new GLatLng(88.0, 0), map.getBoundsZoomLevel(bounds), 
                                        G_PHYSICAL_MAP);
person user3078869    schedule 08.12.2013