加载KML文件 - 点数是否有限制?

时间:2014-05-21 02:11:14

标签: here-api

我从一个KML文件中加载了6,000个兴趣点,但它没有加载。我所做的是将其拆分为4个KML文件。它加载但速度很慢。我的问题是:

  1. 我可以在KML文件中放置点数是否有限制?
  2. 是否有加快速度的代码?我只是使用这些代码来加载KML文件:

    kmlManager.parseKML(" ./ SOURCE_KML / Part1.KML&#34) kmlManager2.parseKML(" ./ SOURCE_KML / Part2.KML",onParsed); kmlManager3.parseKML(" ./ SOURCE_KML / Part3.kml",onParsed); kmlManager4.parseKML(" ./ SOURCE_KML / Part4.kml",onParsed);

1 个答案:

答案 0 :(得分:0)

显然,从KML文件读取/显示的点数必须有一些限制。由于您没有提到文件的大小以及每个处理阶段所花费的时间,因此很难分辨出文件或文件在哪些操作中速度如此之慢。

可以是以下任何一种:

  • KML的网络连接/下载。速度取决于您的网络。
  • 由HERE Maps JavaScript Library完成的KML处理。速度取决于使用的浏览器。
  • 地图上的点的实际渲染,由HERE Maps JavaScript Library完成。速度取决于使用的浏览器。

以编程方式,您无法对第1点做任何事情。如果加载需要时间,那么就这样吧。这基本上是一个用户界面问题(管理期望),你的数据分块和加载较小的文件的技术可能是一个很好的。将其与wait icon结合使用可向用户显示正在发生的事情。

关于第2点 - 您应该考虑KML是否是处理数据的正确(即灵活)格式。其他文件格式可能更短或可以更简洁地保存您的数据。也许您需要在显示之前使用一些自定义处理。 This example在显示文件之前使用AJAX和KML Manager parse()方法。这允许在渲染之前自定义KML。

关于第3点 - 你可以对此做些什么 - 直接添加和渲染6000个标记肯定需要时间。这可以通过标记聚类来缓解 - 即在任何时候只渲染一小部分标记。

考虑来自developer.here.com的数据可视化KML Earthquake example - 该示例盲目地呈现给定的KML文件大约300个点。在下面显示的大小重叠点,无论如何都不容易区分:

KML Earthquake

现在,如果要修改渲染结果,最好预处理或使用其他格式(如GeoJSON),并自定义响应。可以在HERE Maps community examples中找到结合GeoJSON解析和标记聚类的示例。这会渲染一小部分数据,从而更快地显示数据文件。

KML Earthquake Clustered

显然,如果你有6000分而不是300分,那么改进会更加明显。