我有近 100,000 个 KML 文件,其中仅包含名称、描述、多边形和不同位置的点,我将它们组合成一个大型 KML 文件。我现在只是尝试从 Google 地球创建一个指向此 KML 文件的网络链接,该链接只会为屏幕边界框内的位置加载此信息。目前,它试图一次加载所有内容,这可以理解只是让谷歌地球崩溃。
有没有人做过这样的事情并且知道如何去做?
提前致谢 (:
我有近 100,000 个 KML 文件,其中仅包含名称、描述、多边形和不同位置的点,我将它们组合成一个大型 KML 文件。我现在只是尝试从 Google 地球创建一个指向此 KML 文件的网络链接,该链接只会为屏幕边界框内的位置加载此信息。目前,它试图一次加载所有内容,这可以理解只是让谷歌地球崩溃。
有没有人做过这样的事情并且知道如何去做?
提前致谢 (:
必须通过 NetworkLinks 将许多 KML 文件组合到一个父 KML 文件中,这样所有链接和功能都不会像您所见的那样一次加载——结果:Google 地球崩溃。
您需要将 KML 要素分解为较小的 KML 文件,每个文件都位于其自己的有界区域中,然后让单个 KML 文件(父 KML)通过NetworkLink加载每个子 KML,并在 NetworkLink中使用Region元素。理想情况下,KML 文件的区域基本上不重叠,以最大限度地减少一次打开的文件数量。
父 KML 的每个 NetworkLink 都应具有适当的区域和详细级别 ( Lod ) 元素,以防止一次加载所有 KML 文件。
这是父 KML 文件的结构:
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<NetworkLink>
<name>area 1</name>
<Region>
<LatLonAltBox>
<north>xx</north>
<south>xx</south>
<east>xx</east>
<west>xx</west>
</LatLonAltBox>
<Lod>
<minLodPixels>32</minLodPixels>
</Lod>
</Region>
<Link>
<href>1.kml</href>
</Link>
</NetworkLink>
<NetworkLink>
<name>area 2</name>
...
</NetworkLink>
...
</Document>
</kml>
注意:minLodPixels的值可能会因特定区域的大小而异。尝试不同的值:32、64、128 等,直到获得所需的行为。
您可以使用此KML 文件以像素为单位测量屏幕。它提供了在水平和垂直方向上具有可调节像素宽度的屏幕覆盖。
除了区域之外,您可以简单地使每个 NetworkLink 不可见 [将可见性设置为 0],然后用户必须手动检查它以获取内容。如果适用,您还可以应用文件夹单选样式以仅允许加载一组 NetworkLink 中的一个。这是制作 KML 比例的最简单方法。