Ошибка OpenSayers.Layer.GML Throwing JS

Я пытаюсь загрузить файл KML в мою карту Openlayers. Я добавил следующую строку кода в мой файл JS, и он выдает ошибку. Моя карта не будет загружаться даже после добавления этой строки:

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

Я скопировал его отсюда и просто изменил путь к файлу KML, чтобы он соответствовал моему. Кажется, что многие люди используют его просто отлично. Что мне не хватает?

1 ответ

Слой GML устарел, в документации указано, что он будет удален в версии 3.0, и нет документации API для слоя GML для версии 2.12, поэтому он может быть каким-то образом поврежден, и, вероятно, лучше использовать векторный слой с 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
        })
    })
})
Другие вопросы по тегам