如何提高KML性能

时间:2011-03-30 08:35:06

标签: google-maps kml kmz

您好 我在KML性能方面遇到了一些问题。有时,KML标记仅在重新加载后出现,这可能与谷歌缓存结果有关。我认为需要更好的解决方案,例如在更大的缩放级别上显示区域的总标记,然后对具有更多缩放的级别更详细。这样的解决方案是否可行,如果可行,怎么做?您能想到我可以通过其他方式改善KML地图的表现吗?链接为http://www.koolbusiness.com,KML文件为http://www.koolbusiness.com/list.kml

我可以将KML文件加载到maps.google.com中,但没有问题,但是当我尝试在自定义地图上显示它时,显示有时无法加载。 提前感谢任何建议。

更新:我已更新为使用带zip压缩的KMZ文件。该文件可通过http://www.koolbusiness.com/list.kmz获取,来源和更多信息可在http://montao.googlecode.com

获取

2 个答案:

答案 0 :(得分:2)

不知道它是否会影响性能,但似乎需要为kml文件配置mime类型。 http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server

您是否尝试将kml文件压缩为kmz文件?您可以使用zip程序执行此操作,只需调用kmz文件。

您在地标中重复样式元素,但您也可以在doucment元素下创建它们,然后只使用id引用它们。 http://code.google.com/apis/kml/documentation/kmlreference.html#style

答案 1 :(得分:1)

我不确定你是否已经改变了KML以符合之前的一些建议但是......

  • KML文件看起来很小,这很好。我打算建议截断lat / lng上的小数点。
  • 您可以像上一张海报所提到的那样将KML文件压缩到KMZ。可以在此处找到更多信息:http://code.google.com/apis/kml/documentation/kml_tut.html#kml_server您还需要在服务器上设置KMZ MIME类型。
  • 您可以减少KML文件中的空白区域。在不需要时似乎有额外的空间...
  • 您可以配置您的Web服务器以发送KML文件的缓存版本...我不确定您正在运行什么样的后端,所以我无法真正指出。这可能是标记未显示的原因。如果需要太长时间,Google的服务器会将您的请求超时。

关于在缩放区域中显示总标记的解决方案的问题: 我想你可以为每个缩放级别,检查地图的边界,然后只显示在该边界有坐标的标记。您可能必须编写某种函数来检查它是否在边界内。我不知道有什么方法可以将KML文件中的标记作为对象检索,除非您使用客户端解析器手动解析KML。

为了帮助确定标记无法加载的原因,请尝试使用FireBug来确定对Google服务器的请求。并查看返回的响应类型可能会为您的问题提供更多答案。我相信你应该寻找的是KmlOverlayService。

希望有所帮助。