GeoXML3 не возвращает никаких меток

У меня есть файл KML, содержащий несколько полигонов, которые были выведены из приложения (не знаю, какой именно). Когда я пытаюсь загрузить в XML, кажется, загружается нормально, но не возвращает никаких меток, просто пустой массив.

Ссылка на файл KML

Я упростил 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. Ствол старый и не поддерживает многоугольники.

рабочий пример с вашим KML с использованием ветки polys

рабочий пример с вашим KML с использованием ветки kmz

Другие вопросы по тегам