【问题标题】:Using KMZ files with OpenLayers将 KMZ 文件与 OpenLayers 一起使用
【发布时间】:2014-12-25 08:53:24
【问题描述】:

我有一个 .kmz 文件,想在地图上显示数据。
如果我解压缩文件并提取 .kml 文件并使用它,我可以获得地图以显示数据。 但是,由于 .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 文件?

我知道 Google 地图可以直接使用 .kmz 文件来显示数据,但是 OpenLayers 是否可以直接使用 .kmz 文件? 或者是否有必要以某种方式解析 .kmz 文件以提取 .kml 以显示?

【问题讨论】:

  • kmz 文件只是一个已压缩的 kml 文件。因此,您需要创建一个扩展 OpenLayers.Format.KML 的类,该类首先添加了解压缩文件的额外步骤。

标签: openlayers kml kmz


【解决方案1】:

您必须先解压缩文件。

  • 要么在服务器上进行(Google 地图就是这样做的)。
  • 或使用JSZip 之类的方法在客户端执行此操作。您可能需要为此编写自己的format

【讨论】:

  • 其中一个问题是,当您解压缩它时,似乎很多引用都丢失了。是否有任何指南可以编辑内部的 kml,或将文件巧妙地解压缩到正确的空间
猜你喜欢
  • 2018-06-25
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 2022-11-24
  • 2015-12-11
相关资源
最近更新 更多