【问题标题】:KML to google earth network linkKML 到谷歌地球网络链接
【发布时间】:2013-06-22 01:05:43
【问题描述】:
我有近 100,000 个 KML 文件,其中仅包含名称、描述、多边形和不同位置的点,我将它们合并为一个大型 KML 文件。我现在只是尝试从 Google 地球创建一个指向此 KML 文件的网络链接,该链接只会为屏幕边界框内的位置加载此信息。目前,它试图一次加载所有内容,这可以理解,这只会让谷歌地球崩溃。
以前有没有人做过类似的事情并且知道如何去做?
提前致谢(:
【问题讨论】:
标签:
kml
google-earth
bounding-box
【解决方案1】:
必须通过 NetworkLink 将多个 KML 文件合并到一个父 KML 文件中,这样就不会像您看到的那样一次加载所有链接和功能 - 结果:Google 地球崩溃。
您需要将您的 KML 功能分解为较小的 KML 文件,每个文件在其自己的有界区域中,然后让单个 KML 文件(父 KML)通过 NetworkLink 中的 NetworkLinks 和 Region 元素加载每个子 KML .理想情况下,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 file 以像素为单位测量屏幕。它提供了在水平和垂直方向上具有可调像素宽度的屏幕叠加层。
除了区域之外,您可以简单地使每个 NetworkLink 不可见 [将 visibility 设置为 0],然后用户必须手动检查它以获取内容。如果适用,您还可以应用 folder radio style 以仅允许加载一组 NetworkLink 中的一个。这是制作 KML 比例的最简单方法。