0

我正在尝试将 KML 文件加载到我的 Openlayers 地图中。我将以下代码行添加到我的 JS 文件中,它会引发错误。添加此行后,我的地图甚至不会加载:

var layer = new OpenLayers.Layer.GML("KML", "kml/mykml.kml", {format: OpenLayers.Format.KML});

我从这里复制了它,只是更改了 KML 文件的路径以匹配我自己的路径。似乎很多人都在使用它。我错过了什么?

4

1 回答 1

0

GML 层已弃用,文档说明它将在 3.0 中删除,并且没有针对 2.12 版的 GML 层的 api 文档,因此它可能会以某种方式损坏,并且可能最好将 Vector 层与 Protocol.HTTP 和 Strategy.Fixed 一起使用。

此代码(字面上取自带有文件名更正的 KML 示例)应该可以完成工作:

var layer = new OpenLayers.Layer.Vector("KML", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        url: "kml/mykml.kml",
        format: new OpenLayers.Format.KML({
            extractStyles: true, 
            extractAttributes: true,
            maxDepth: 2
        })
    })
})
于 2013-04-25T00:13:26.750 回答