GeoXML3 не возвращает никаких меток
У меня есть файл KML, содержащий несколько полигонов, которые были выведены из приложения (не знаю, какой именно). Когда я пытаюсь загрузить в XML, кажется, загружается нормально, но не возвращает никаких меток, просто пустой массив.
Я упростил JS только для тестирования до следующего:
var map = new google.maps.Map(document.getElementById('gmap'), {
center: new google.maps.LatLng(51.503355, -0.127564),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var geoxml = new geoXML3.parser({
map : map,
singleInfoWindow : false,
afterParse: useTheData
});
geoxml.parse('placemarks.kml');
function useTheData(doc) {
console.log(doc[0].placemarks);
for (var i = 0; i < doc[0].placemarks.length; i++) {
console.log( doc[0].placemarks[i].name );
}
};
Когда я регистрирую объект меток, я просто получаю [] в консоли. Файл неверный?
Я добавил следующее в мой.htaccess
AddType application/vnd.google-earth.kml+xml .kml
И заменил GeoXML.fetchXML следующим (поскольку я получал "Невозможно получить placemarks.kml")
geoXML3.fetchXML = function (url, callback) {
function timeoutHandler() {
callback();
};
$.ajax({
type: "GET",
cache: false,
url: url,
success: function(xml) {
callback(xml);
}
});
};
1 ответ
Решение
Вам нужно использовать geoxml3 из ветки polys или из ветки kmz. Ствол старый и не поддерживает многоугольники.