我从一个KML文件中加载了6,000个兴趣点,但它没有加载。我所做的是将其拆分为4个KML文件。它加载但速度很慢。我的问题是:
是否有加快速度的代码?我只是使用这些代码来加载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);
答案 0 :(得分:0)
显然,从KML文件读取/显示的点数必须有一些限制。由于您没有提到文件的大小以及每个处理阶段所花费的时间,因此很难分辨出文件或文件在哪些操作中速度如此之慢。
可以是以下任何一种:
以编程方式,您无法对第1点做任何事情。如果加载需要时间,那么就这样吧。这基本上是一个用户界面问题(管理期望),你的数据分块和加载较小的文件的技术可能是一个很好的。将其与wait icon结合使用可向用户显示正在发生的事情。
关于第2点 - 您应该考虑KML是否是处理数据的正确(即灵活)格式。其他文件格式可能更短或可以更简洁地保存您的数据。也许您需要在显示之前使用一些自定义处理。 This example在显示文件之前使用AJAX和KML Manager parse()方法。这允许在渲染之前自定义KML。
关于第3点 - 你可以对此做些什么 - 直接添加和渲染6000个标记肯定需要时间。这可以通过标记聚类来缓解 - 即在任何时候只渲染一小部分标记。
考虑来自developer.here.com的数据可视化KML Earthquake example - 该示例盲目地呈现给定的KML文件大约300个点。在下面显示的大小重叠点,无论如何都不容易区分:
现在,如果要修改渲染结果,最好预处理或使用其他格式(如GeoJSON),并自定义响应。可以在HERE Maps community examples中找到结合GeoJSON解析和标记聚类的示例。这会渲染一小部分数据,从而更快地显示数据文件。
显然,如果你有6000分而不是300分,那么改进会更加明显。