通過設計,您可以在一個KMZ文件中包含多個KML文件。這樣,您可以將許多KML文件捆綁到一個KMZ文件中,該KMZ文件可以通過電子郵件發送或脫機訪問。
如果要素被拆分爲多個KML文件,並且定義了KML以使所有子KML文件都可以在一個KMZ文件中擴展爲大量的功能(50,000或更大)不會立即顯示。 KML提供了使用時間,地區或高度級別過濾來控制顯示哪些功能或子KML文件的機制。
大型KML文件可以擴展使用任何下列技術:
- NetworkLinks
- Regions
- 文件夾收音機的風格或顯式可視性= 0
NetworkLink一起
您可以將任何級別的NetworkLinks從您的根KML文件中的平面(單個KML文件與Networklinks到KMZ中的所有其他KML文件)深入到一起(每個KML文件都帶有一個NetworkLink到其他每個KML文件都帶有自己的NetworkLink )。取決於您需要如何構建KML以及數據量有多大。
關鍵在於Google地球選擇第一個KML作爲根KML文件,因此您必須確保第一個文件(通常名爲doc.kml)是通過網絡鏈接加載其他KML文件的根KML文件。一個常見的結構是在「kml」子文件夾中包含額外的KML文件,以將其與根KML文件區分開來。
這裏的一個KMZ例如用4文件條目:根KML文件包含一個網絡鏈接(對於doc.kml)爲 「KML/sub1.kml」,另一個爲 「KML/sub2.kml」,這在在「kml」子文件夾中也有一個NetworkLink爲「sub3.kml」。
== test.kmz ==
+doc.kml
NetworkLink > kml/sub1.kml
NetworkLink > kml/sub2.kml
+kml/sub1.kml
+kml/sub2.kml
NetworkLink > sub3.kml
+kml/sub3.kml
這裏就是這樣一個對於doc.kml文件的結構:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<NetworkLink>
<name>NetworkLinked sub-item</name>
<Link>
<href> kml/sub1.kml </href>
</Link>
</NetworkLink>
<NetworkLink>
<name>NetworkLinked sub-item</name>
<Link>
<href> kml/sub2.kml </href>
</Link>
</NetworkLink>
...
</Document>
</kml>
因爲如果你包含一個以上的網絡鏈接與父母則KML文件基於時間的功能最佳實踐在NetworkLinks中添加一個<TimeSpan>
元素,包括該功能集的全部時間範圍,否則Google地球會在啓動時自動加載整個文件。
<NetworkLink>
<TimeSpan>
<begin>2007-01-14T01:00:00Z</begin>
<end>2007-01-14T02:00:00Z</end>
</TimeSpan>
<Link>
<href>...</href>
</Link>
</NetworkLink>
地區
一個Region 影響地標幾何或重疊的圖像的可見性。與NetworkLinks結合使用的區域可以訪問KML文件中的海量數據。一個地區可以選擇有高度水平過濾的最小和最大高度。
有關詳細信息,這裏的一對地區的教程在KML
https://developers.google.com/kml/documentation/regions
廣播文件夾
可以進一步限制什麼用radio folders在給定時間顯示。
下面是一個radio文件夾示例,允許用戶一次只選擇一個NetworkLink。 當內容相互排斥並且在任何給定時間只有一組功能應該出現時使用。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="rf">
<ListStyle>
<listItemType>radioFolder</listItemType>
</ListStyle>
</Style>
<Folder>
<name>One at a time example</name>
<open>1</open>
<description>Link 1 visible by default</description>
<styleUrl>#rf</styleUrl>
<NetworkLink>
<name>NetworkLinked sub-item-1</name>
<Link>
<href> kml/sub1.kml </href>
</Link>
</NetworkLink>
<NetworkLink>
<name>NetworkLinked sub-item-2</name>
<visibility>0</visibility>
<Link>
<href> kml/sub2.kml </href>
</Link>
</NetworkLink>
</Folder>
</Document>
</kml>
謝謝艾迪。意圖是讓所有東西都離線 –
上面的語句「A kmz只能包含1 kml文件」是不正確的。問題是,這沒有清楚地記錄在任何地方。 – JasonM1