Код моей карты 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
Кто-нибудь знает, как я могу решить эту проблему?
GeoXml3 использует объект браузера XmlHttpRequest, который подчиняется той же политике происхождения . Вы не можете получить доступ к https://developers.google.com из http://localhost:8080 (различное происхождение).
https://developers.google.com
http://localhost:8080
Чтобы использовать GeoXml3, либо скопируйте этот файл на свой сервер и получите к нему доступ через относительный URL-адрес, либо воспользуйтесь прокси-сервером на http://localhost:8080.
пример загрузки этого URL через прокси
пример использования свойства proxy GeoXml3
proxy
Другой вариант - использовать API JavaScript Карт Google v3 KmlLayer, который обращается к KML с серверов Google и не подчиняется той же политике происхождения.
KmlLayer