2

我有近 100,000 个 KML 文件,其中仅包含名称、描述、多边形和不同位置的点,我将它们组合成一个大型 KML 文件。我现在只是尝试从 Google 地球创建一个指向此 KML 文件的网络链接,该链接只会为屏幕边界框内的位置加载此信息。目前,它试图一次加载所有内容,这可以理解只是让谷歌地球崩溃。

有没有人做过这样的事情并且知道如何去做?

提前致谢 (:

4

1 回答 1

1

必须通过 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 比例的最简单方法。

于 2013-06-12T13:00:44.010 回答