Я полагаю, что вы могли бы добиться этого, используя комбинацию атрибутов ID
и элементов NetworkLinkControl
и Update
в Kml.
Файл MyFlyToRequest.kml содержит NetworkLink, который загружает файл данных, содержащий ваши данные, для него элемент flyToView
имеет значение true. Обратите внимание, что сетевой канал также имеет идентификатор request
MyFlyToRequest.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink id="request">
<name>My Fly To Request</name>
<Link>
<href>http://www.yourserver.com/MyFlyTo.kmz</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>2</refreshInterval>
</Link>
<flyToView>1</flyToView>
</NetworkLink>
</kml>
Второй файл, MyFlyTo.kmz, является загруженным. Он содержит ваши текущие данные как есть. Однако он также имеет дополнительный NetworkLink, который загружает новый третий файл.
MyFlyTo.kmz - отредактировано
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="data">
<visibility>1</visibility>
<NetworkLink>
<name>Update MyFlyToRequest</name>
<Link>
<href>http://www.yourserver.com/TurnOffFlyTo.kml</href>
</Link>
</NetworkLink>
<Placemark>
<name>This is flown to once (hopefully)</name>
<Point>
<coordinates>52,0,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
Новый третий файл TurnOffFlyTo.kml
является частью ключа к настройке, он содержит NetworkLinkControl
, предназначенный для request
NetworkLink в первом файле MyFlyToRequest.kml. Он просто устанавливает flyToView
элемент на 0.
TurnOffFlyTo.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLinkControl>
<Update>
<targetHref>http://www.yourserver.com/MyFlyToRequest.kml#request</targetHref>
<Change>
<NetworkLink id="request">
<!-- turn off the flyto behaviour -->
<flyToView>0</flyToView>
</NetworkLink>
</Change>
</Update>
</NetworkLinkControl>
</kml>
Последний файл TurnOnFlyTo.kml
просто снова переключает поведение flyto.
TurnOnFlyTo.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLinkControl>
<Update>
<targetHref>http://www.yourserver.com/MyFlyToRequest.kml#request</targetHref>
<Change>
<NetworkLink id="request">
<!-- turn off the flyto behaviour -->
<flyToView>1</flyToView>
</NetworkLink>
</Change>
</Update>
</NetworkLinkControl>
</kml>
Логика следующая.
- MyFlyToRequest.kml загружает MyFlyTo.kml
flyto
включено, поэтому представление перемещает первую первую метку и т. Д. В MyFlyTo.kml
- Ссылка в MyFlyTo.kml загружает TurnOffFlyTo.kml.
-
Update
в TurnOffFlyTo.kml three отключает flyto
в MyFlyToRequest.kml.
- Файл один, обновляет, загружает файл два ...
Если вам нужно снова включить flyto, вы просто загрузите Файл четыре. Если данные в MyFlyTo.kmz генерируются вами, это был бы простой случай загрузки TurnOnFlyTo.kml прямо там, где был вызван TurnOffFlyTo.kml.
Все, что сказано, это не проверено и как таковое может не работать как есть, хотя в принципе я не понимаю, почему это не будет.
Если это звучит так, как вы можете попробовать, вот несколько ресурсов, которые должны помочь.
Ссылка NetworkLinkControl
http://code.google.com/apis/kml/documentation/kmlreference.html#networklinkcontrol
Использование обновлений
http://code.google.com/apis/kml/documentation/updates.html