Невозможно отобразить файл KML на карту Google - PullRequest
0 голосов
/ 09 сентября 2018

Код моей карты Google

var myOptions = {
    center: {lat: 55.864237, lng: -4.251806},
    zoom: 16,
    mapTypeId: google.maps.MapTypeId.SATELLITE
};

var map1 = new google.maps.Map(document.getElementById("map"), myOptions);

var geoXml = new geoXML3.parser({
    map: map1
});
var source = 'https://developers.google.com/kml/documentation/KML_Samples.kml';

geoXml.parse(source);

И ошибка, которую я получаю, выглядит следующим образом:

Не удалось загрузить https://developers.google.com/kml/documentation/KML_Samples.kml: Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Источник 'http://localhost:8080' поэтому не имеет доступа.

Ошибка синтаксического анализа XML Невозможно получить https://developers.google.com/kml/documentation/KML_Samples.kml

Кто-нибудь знает, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 09 сентября 2018

GeoXml3 использует объект браузера XmlHttpRequest, который подчиняется той же политике происхождения . Вы не можете получить доступ к https://developers.google.com из http://localhost:8080 (различное происхождение).

Чтобы использовать GeoXml3, либо скопируйте этот файл на свой сервер и получите к нему доступ через относительный URL-адрес, либо воспользуйтесь прокси-сервером на http://localhost:8080.

пример загрузки этого URL через прокси

пример использования свойства proxy GeoXml3

Другой вариант - использовать API JavaScript Карт Google v3 KmlLayer, который обращается к KML с серверов Google и не подчиняется той же политике происхождения.

...