如何让谷歌地球显示大型KML文件中的所有地标

4

我已经创建了一个可以在Google Earth中播放的kml文件。但是在文件播放完成之前,地标停止出现。该文件是一个移动车辆的地标,在8小时内每0.1秒记录一次,最多可能达到294,000个。

有没有办法让Google Earth在这样一个大文件中显示所有的地标呢?

非常感谢您的帮助。


使用非常简单的png文件来显示地标。只需要一个或两个点。使用StyleUrl而不是重复数千次的样式。或者,根据您的文件性质,您可以通过使用镶嵌线代替一系列轨迹点来获得惊人的节省。我编写了一个程序来简化我的kml文件。它们不大,但数量众多,因此作为一组它们绘制速度很慢。您可以通过发送带有kml主题行的电子邮件到KmlFixer@Gmail.com来运行我的免费程序。您将收到一封自动回复的电子邮件,其中包含说明。这很简单易用。 - Alfista71
1个回答

3
您可以同时显示高达294K个地标,但这样一个大的KML文件通常会导致性能问题,有时还会出现渲染问题。
test KML generator中,加载500K个地标的单个KML文件存在严重问题。类似的测试,使用100K个地标会有长时间的启动延迟(约2分钟),但之后运行顺畅。这些数字提供了单个KML文件中特征限制的大致顺序。
建议将地标分成1小时块,然后使用network links创建父KML文件来加载所有块。每个NetworkLinks应具有其相应时间段的TimeSpan。然后只会加载和显示活动的部分。如果性能仍然是问题,可以将其分成更小的块。
根KML文件将如下所示:
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
    <name>Parent Document</name>
    <open>1</open>

    <NetworkLink>
      <name>Group #1</name>
      <TimeSpan>
            <begin>2012-08-12T01:00:00Z</begin>
            <end>2012-08-12T01:59:59Z</end>
      </TimeSpan>
      <Link>
        <href>group_0100.kml</href>
      </Link>
    </NetworkLink>

    <NetworkLink>
      <name>Group #2</name>
      <TimeSpan>
            <begin>2012-08-12T02:00:00Z</begin>
            <end>2012-08-12T02:59:59Z</end>
      </TimeSpan>
      <Link>
        <href>group_0200.kml</href>
      </Link>
    </NetworkLink>
    ...
</Document>
</kml>

我使用了Google Takeout导出我的位置历史记录,结果有383K个点。Google Earth卡顿并完全崩溃。我尝试了NetworkLink,但Google Earth仍然试图一次性加载所有点。有没有办法让它不这样做? - ubershmekel
我在FolderNetworkLink节点上添加了 <visibility>0</visibility> 来解决问题。仅仅隐藏Folder节点并没有起作用。 - ubershmekel
@ubershmekel - 子功能不会从其父文件夹继承可见性,正如KML规范所述。必须向每个NetworkLink添加可见性0,以使其在未使用时间范围时不会默认加载。错误在此处列出:https://code.google.com/p/earth-issues/issues/detail?id=435 - CodeMonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接