Как вы могли догадаться, это не работает для меня, и я искал окончательный ответ или обход. Я знаю, что это не поддерживается в Maps.Работает ли kml gx: Track ExtendedData с плагином Google Планета Земля?
Вот пример KML:
<?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" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>Track</name>
<open>1</open>
<Schema name="Info" id="InfoId">
<gx:SimpleArrayField kml:type="string" kml:name="MyField">
<displayName>Value</displayName>
</gx:SimpleArrayField>
</Schema>
<Folder>
<name>Track History</name>
<open>1</open>
<Placemark>
<name>Track</name>
<gx:Track>
<extrude>1</extrude>
<altitudeMode>absolute</altitudeMode>
<when>2012-03-12T05:59:09Z</when>
<when>2012-03-12T05:59:11Z</when>
<when>2012-03-12T05:59:13Z</when>
<gx:coord>-76.1558297472738 43.02432853192255 1544.41929539293</gx:coord>
<gx:coord>-76.136216188444 43.07112543504023 1454.468177223578</gx:coord>
<gx:coord>-76.1190908056531 43.10944870095626 1456.513482289223</gx:coord>
<ExtendedData>
<SchemaData schemaUrl="#InfoId">
<gx:SimpleArrayData kml:name="MyField">
<gx:value>one</gx:value>
<gx:value>two</gx:value>
<gx:value>three</gx:value>
</gx:SimpleArrayData>
</SchemaData>
</ExtendedData>
</gx:Track>
</Placemark>
</Folder>
</Document>
</kml>
Это показывает, как ожидается, в настольном клиенте Земли. Но при загрузке в приложение на основе браузера с помощью плагина в шарах, связанных с точками трека, не появляется MyField
ExtendedData
(связанный с схемой InfoId
).
Я полагал, что это, возможно, придется делать с scrubbing, поэтому экспериментировал с прикрепление обработчика событий для balloonopening
события и извлечения содержимого на воздушном шаре с getBalloonHtmlUnsafe()
, надеясь, что я мог бы создать новый воздушный шар с unscrubbed контента для точки трека, но его там нет. Это is все там в сыром виде, когда выбрано getKml()
.
Помимо создания этого простого примера с базовым корпусом, я также попробовал загрузить его из строкового литерала с помощью ge.parseKml()
, а не по сетевой ссылке или google.earth.fetchKml()
.
Похоже, что использование метода suggestedExtendedData
с gx:Track
не поддерживается или, по крайней мере, не работает, в плагине. Может кто-то подтвердить это или показать мне, что я ошибаюсь?
В качестве альтернативы, я могу найти метку в вышеупомянутом обработчике событий шара, который можно использовать для правильного размещения воздушного шара в выбранной позиции трека, но не может найти способ получить индекс массива для дорожки, которая Я мог бы использовать для выбора данных самостоятельно из kml DOM. Объекты, как представляется, являются объектами-хозяевами, и поэтому любая специальная apis в метке gx: Track не перечислима. Но мои реальные наборы данных большие (почему я пытаюсь использовать gx:Track
!), И я бы предпочел не манипулировать всеми этими данными на JavaScript в любом случае.
О и и я в первую очередь с помощью Win7 и:
Google Chrome version: 17.0.963.79 m
Google Earth plugin version: 6.2.1.6014
Google Earth API version: 1.010
Любая помощь очень высоко ценится, спасибо.