2011-09-15 41 views
2

有沒有辦法引用地標(可能是使用地標ID屬性)?參考KML中的地標

使用案例:

假設你有公交車的列表停在一個城市。有些站點對許多公交線路來說都很常見。如果可以使用地標標記,則可能會出現所有站點的主列表,並且每行(在單獨的文件夾中設置)都可能只是指上述地標之一。選擇多個文件夾將顯示這些行的其他地標,但已顯示的地標不會顯示多次。

這會產生很少的混亂,尤其是名稱只顯示一次。

回答

2

遺憾的是不作爲KML模式不支持一個一對多的關係或符號鏈接(除了款式,但是這是不是真的任何你有幫助。)

然而,一個辦法可以效仿這是通過使用文件夾描述中的鏈接。

要使用你的榜樣,說你有一個具有在其定義的「公共汽車站」的地方的標誌您的主列表的單個文件。然後,您可以在文件夾中定義所有路線,並帶有到相關站點的描述鏈接。

顯然,所有地方的標誌始終顯示,但每個「路徑文件」將至少讓你無需複製停止數據停止該路由之間移動。

例如

<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> 

編輯

你也可以簡單地讓您的數據的東西,它支持一到多,像一個MySQL數據庫。然後,您可以查詢它,但是您希望根據請求根據需要生成KML。採取措施,通過你怎麼可能會成立一個數據庫來保存你的數據,如何查詢並從中輸出KML看看這個Database Driven Earth App Using PHP & MySQL with the Earth API不言而喻。

+0

這是一個問題。我不想顯示所有點所有的時間。儘管如此,一個有趣的黑客。感謝您確認不支持一對多。 – MPelletier