スタンドアロンの Google Earth クライアントにデータを提供するアプリケーションを構築しています。データの初期セットを送信し、サーバー上での変化に応じてタグを使用<NetworkLinkControl>
して動的に更新したいと考えています。<Update><cookie>
Java API for KML (JAK) ライブラリを使用して KML を生成しています。残念ながら、GE が NetworkLink を更新し、送信している更新をプルダウンしていることは確認できますが、GE には更新が表示されません。たくさん読んだ後、アップデート<targetHref>
が問題である可能性があるようですが、同じ文字列を送信していることは 99.9% 確信しています。
私が混乱したことの一部は、<cookie>
要素の値を に追加する必要があるかどうかについて矛盾する情報を見たこと<targetHref>
です。静的サーバー URL から手書きのテスト KML ファイルを提供していたときに、初期のプロトタイプが更新されているのを実際に見たので、そうではないのではないかと思います。実際、それが現時点でイライラしていることです。自分のマシンで作業を更新しているのを見てきましたが、有効で正しい KML のように見えるものでは、現在は機能していません。
現在の設定は次のようになっています (わかりやすいように不要な XML 名前空間は削除されています。「$CLIENT_ID」は GUID のような文字列です)。
http://server/kml/ ${CLIENT_ID}から提供されるルート KML ファイル:
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><NetworkLink>
<Link>
<href>http://server/kmlupdates/${CLIENT_ID}</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>1.0</refreshInterval>
<viewRefreshTime>0.0</viewRefreshTime>
<viewBoundScale>0.0</viewBoundScale>
</Link>
</NetworkLink></kml>
http://server/kmlupdates/ ${CLIENT_ID}から提供される初期コンテンツ KML :
<kml><NetworkLinkControl>
<minRefreshPeriod>0.0</minRefreshPeriod>
<maxSessionLength>-1.0</maxSessionLength>
<cookie>cookie=0|kmlRequestType=updates|projectID=6|lastUpdateSeenIndex=-1</cookie>
</NetworkLinkControl>
<Document id="myProject">
<name>My ProjectProject</name>
<Placemark id="pm1"><name>point1</name>
<Point><coordinates>-117.0,35.0</coordinates></Point>
</Placemark>
</Document></kml>
http://server/kmlupdates/ ${CLIENT_ID}から提供されるその後の更新 KML :
<kml><NetworkLinkControl>
<minRefreshPeriod>0.0</minRefreshPeriod>
<maxSessionLength>-1.0</maxSessionLength>
<cookie>cookie=0|kmlRequestType=updates|projectID=6|lastUpdateSeenIndex=0</cookie>
<Update>
<targetHref>http://server/kmlupdates/${CLIENT_ID}</targetHref>
<Change>
<Placemark targetId="pm1">
<name>Name changed by Update Change</name>
</Placemark>
</Change>
</Update>
</NetworkLinkControl></kml>
ここで私が見逃していることについて何か提案があれば、大いに感謝します。ありがとう!