2014-10-29 104 views
2

我有一个名为.kmz文件,并希望在地图上显示的数据。
如果我解压缩文件,并提取.KML文件和使用,我可以在地图中显示的数据。 但是,由于.kmz文件托管在其他地方,因此我需要读取该文件,并且理想情况下不必在每次更新时都在本地解析它。用的OpenLayers使用KMZ文件

我对解析.KML文件样本

var phase1 = new OpenLayers.Layer.Vector("phase1", { 
    projection: new OpenLayers.Projection("EPSG:4326"), 
    strategies: [new OpenLayers.Strategy.Fixed()], 
    protocol: new OpenLayers.Protocol.HTTP({ 
     url: "data.kml", 
     format: new OpenLayers.Format.KML({ 
      extractStyles: true, 
      extractAttributes: true 
     }) 
    }) 
}); 

是否有东西需要改变阅读.kmz档案以上?

我知道,谷歌地图是能够直接使用.kmz档案中显示的数据,但它可能的OpenLayers直接使用.kmz档案? 或者是否有必要解析.kmz文件来提取.kml文件来显示?

+0

KMZ文件就是已经进行了压缩KML文件。因此,您需要创建一个扩展OpenLayers.Format.KML的类,该类添加了先解压文件的额外步骤。 – 2014-10-30 12:16:29

回答

2

你必须先解压缩文件。

  • 要么在服务器上执行(这是Google Maps的作用)。
  • 或者使用类似JSZip做在客户端。您可能需要为此编写自己的format