2011-09-15 10 views
2

目印を参照する方法はありますか(おそらく目印ID属性を使用します)。KMLの目印を参照する

使用例:

市にバス停のリストがあるとします。いくつかの停留所は多くのバス路線に共通するでしょう。目印参照が可能だった場合は、すべての停車駅のマスターリストがあり、各行(別のフォルダに設定されている)は上記の目印の1つを参照することができます。複数のフォルダを選択すると、それらの行の他の目印が表示されますが、既に表示されている目印は複数回表示されません。

これは、特に一度しか表示されない名前では、混乱が少なくなります。

答えて

2

残念ながらKMLスキーマは、(離れてスタイルから、それは本当にあなたへの使用のではありません。)1対多の関係やシンボリックリンクをサポートしていないではないよう

をただし、あなたがエミュレートすることができ片道これは、フォルダの説明にリンクを使用することです。

例を使用するには、マスターリストに「バス停」の場所記号が定義されているファイルが1つあるとします。次に、フォルダ内のすべてのルートを定義して、該当するストップへの説明リンクを設定することができます。

明らかに、すべてのプレースマークは常に表示されますが、各「ルートフォルダ」は、少なくとも、停止データを複製することなく、そのルートの停止地点間を移動できるようにします。

<kml> 
    <Folder id="stops"> 
    <Placemark id="p1"> 
     <name>stop 1</name> 
    </Placemark> 
    <Placemark id="p2"> 
     <name>stop 2</name> 
    </Placemark> 
    <Placemark id="p3"> 
     <name>stop 3</name> 
    </Placemark> 
    <Placemark id="p4"> 
     <name>stop 4</name> 
    </Placemark> 
    </Folder> 
    <Folder id="r1"> 
     <name>route 1</name> 
     <description> 
     <![CDATA[ 
     <a href="#p1;balloonFlyto">stop 1</a> 
     <a href="#p3;balloonFlyto">stop 3</a> 
     ]]> 
     </description> 
    </Folder> 
    <Folder id="r2"> 
     <name>route 2</name> 
     <description> 
     <![CDATA[ 
     <a href="#p1;balloonFlyto">stop 1</a> 
     <a href="#p2;balloonFlyto">stop 2</a> 
     <a href="#p4;balloonFlyto">stop 4</a> 
     ]]> 
     </description> 
    </Folder> 
</kml> 

EDIT

また、単にmysqlデータベースのように、1対多をサポートして何かにあなたのデータを保つことができます。要求に基づいて必要に応じてKMLを生成するのが好きだが、クエリを実行することができます。このDatabase Driven Earth App Using PHP & MySQL with the Earth APIを見てみると、データを保持するデータベースを設定する方法、クエリを照会してKMLを出力する方法が説明されています。

+0

これはキャッチです。私はいつもすべての点を表示したくありません。それでも、面白いハック。 1対多のサポートがないことを確認していただきありがとうございます。 – MPelletier