複数のKMLレイヤーを使用してデータを表示するgoogle-earthAPIを使用するウェブがあります。
ユーザーの操作により、目印の表示情報を変更するために、スタイルや名前などの目印のいくつかのプロパティを変更する必要があります。
場合によっては、KMLで指定されているジオメトリAltitude
の情報に含まれている目印の情報を変更したいと思います。Point
実際はそうですがclampedToGround
、他の要素の上に表示されるように、任意の数に変更したいと思います。
これは、目印情報を変更する方法の例です。
var pm = ge.getElementByUrl(UrlOfLayer#IdOfPlacemark);
pm.setStyleUrl(UrlOfLayer#IdOfStyleMap);
pm.setName(NewName);
これは完全に機能しており、すべての変更が問題なく適用されます。KMLの目印の構造は次のとおりです。
<Placemark id="1">
<name>Name</name>
<visibility>1</visibility>
<open>0</open>
<Point>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitude>clampedToGround</altitude>
<coordinates>1,1,1</coordinates>
</Point>
<styleUrl>#style</styleUrl>
</Placemark>
この構造と取得したJavascriptの目印を使用すると、、などgetElementByUrl
でフィールド名、可視性などにアクセスできます。ただし、点情報は目印のオブジェクト内に含まれているため、これは機能しません。getName()
getVisibility()
Geometry
を使用してジオメトリ情報にアクセスできますpm.getGeometry()
が、その後、Google Earthのドキュメントにあるように、「ポイント」にアクセスできなくなります。
KmlGeometryオブジェクトは抽象オブジェクトであり、直接使用することはできません。派生したすべてのGeometryオブジェクトのプレースホルダーオブジェクトを提供します。
ポイント情報が使用されているいくつかの例を見ると、ポイントを作成するためにのみ使用され、その後、ジオメトリに含まれていますが、私の場合、座標情報を取得できないため、Javascriptでポイントを作成できません。新しいポイントがそれを上書きします。
それで、この目的を達成するために私が見つけることができなかったアクセサはありますか?