根据设计,您可以在单个 KMZ 文件中包含多个 KML 文件。这样,您可以将多个 KML 文件捆绑在一个 KMZ 文件中,该文件可以下载、通过电子邮件发送或离线访问。
如果要素被拆分为多个 KML 文件并且 KML 被定义为不会同时显示所有子 KML 文件,则Google 地球可以扩展到单个 KMZ 文件中的大量要素(50,000 或更多)。KML 提供了使用时间、区域或海拔级别过滤来控制显示哪些要素或子 KML 文件的机制。
大型 KML 文件可以使用以下任何技术进行缩放:
- 网络链接
- 地区
- 文件夹单选样式或显式可见性=0
- 每个特征的点数和几何简化
网络链接
您可以在根 KML 文件中拥有任何级别的网络链接,从平面(具有网络链接的单个 KML 文件到 KMZ 中的所有其他 KML 文件)到深度(每个 KML 文件都有一个 NetworkLink 到其他 KML 文件,每个文件都有自己的 NetworkLink) . 取决于您需要如何构建 KML 以及数据有多大。
关键是 Google 地球选择第一个 KML 作为根 KML 文件,因此您必须确保第一个文件(通常命名为 doc.kml)是通过网络链接加载其他 KML 文件的根 KML 文件。一种常见的结构是在“kml”子文件夹中包含其他 KML 文件,以将其与根 KML 文件区分开来。
这是一个包含 4 个文件条目的 KMZ 示例:根 KML 文件 (doc.kml),其中包含一个指向“kml/sub1.kml”的 NetworkLink ,另一个指向“ kml/sub2.kml ”,后者又具有一个指向“ sub3.x”的 NetworkLink。 kml ”也在“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 文件中包含多个具有基于时间的功能的 NetworkLink,则最佳做法是<TimeSpan>
向 NetworkLink 添加一个元素,包括该功能集合的完整时间范围,否则 Google 地球将在启动时自动加载整个文件.
<NetworkLink>
<TimeSpan>
<begin>2007-01-14T01:00:00Z</begin>
<end>2007-01-14T02:00:00Z</end>
</TimeSpan>
<Link>
<href>...</href>
</Link>
</NetworkLink>
地区
区域
会影响地标几何图形或覆盖图图像的可见性。区域与 NetworkLink 相结合,可以访问 KML 文件中的大量数据。区域可以选择具有用于高度级别过滤的最小和最大高度。
有关更多详细信息,请参阅 KML 中的区域教程
https://developers.google.com/kml/documentation/regions
收音机文件夹
您可以使用单选文件夹进一步限制在给定时间显示的内容。
这是一个单选文件夹示例,允许用户一次只选择一个 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>
每个特征的点数和几何简化
KML 文件的大小和要素数量并不是唯一需要考虑的问题。具有 350K 点和 7000 个内孔的单个高分辨率多边形的 KML 文件可能会导致 Google 地球性能问题。这种几何形状需要简化并减少点的数量。您可以使用QGIS打开 KML 文件,然后在多边形上应用简化算法。在 QGIS 中,选择 Vector menu -> Geometry tools -> Simplify 然后保存结果。