KML到谷歌地球网络链接

时间:2013-06-11 23:09:25

标签: kml google-earth bounding-box

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

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

提前致谢(:

1 个答案:

答案 0 :(得分:1)

必须在单个父KML文件中通过NetworkLinks组合许多KML文件,以便在您看到所有链接和功能时不会立即加载 - 结果:崩溃Google地球。

您需要将KML功能分解为更小的KML文件,每个文件位于其自己的有界区域,然后让单个KML文件(父KML)通过NetworkLinks加载Region每个子KML NetworkLink中的元素。理想情况下,KML文件的区域在很大程度上是不重叠的,以最大限度地减少一次打开的文件数量。

父KML应该让每个NetworkLink都具有适当的Region和Level of details(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来衡量屏幕(以像素为单位)。它提供了一个屏幕覆盖,在水平和垂直方向都具有可调节的像素宽度。

除了Regions之外,您可以简单地使每个NetworkLink不可见[set visibility为0],然后用户必须手动检查它以获取内容。如果适用,您还可以应用folder radio style仅允许加载一组NetworkLink中的一个。这是制作KML量表的最简单方法。