Ошибка 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
})
})
})