Мой код карты 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: // локальный: 8080' доступ не разрешен.
Ошибка синтаксического анализа XML Невозможно получить https://developers.google.com/kml/documentation/KML_Samples.kml
Кто-нибудь знает, как я могу решить эту проблему?
GeoXml3 использует объект XmlHttpRequest браузера, который подчиняется та же политика происхождения. Вы не можете получить доступ к https://developers.google.com
из http://localhost:8080
(другого происхождения).
Чтобы использовать GeoXml3, либо скопируйте этот файл на свой сервер и получите доступ к нему через относительный URL-адрес, либо получите доступ к нему через прокси на http://localhost:8080
.
пример загрузки этого URL через прокси
пример с использованием свойства proxy
GeoXml3
Другой вариант - использовать Google Maps Javascript API v3 KmlLayer
, который обращается к KML с серверов Google и не подчиняется той же политике происхождения.
На самом деле я сначала попробовал KML Layer и столкнулся со следующей проблемой. 1. Я загрузил свой файл kml в Dropbox. И я успешно визуализирую этот файл kml на карте Google. Но на карте не отображалась цветовая схема и многоугольники с разными цветами. Он просто показывал полилинии. Я узнал об этой проблеме, когда загрузил этот файл в онлайн-программу просмотра KML (ivanrublev.me/kml). Ссылка моего kml - dropbox.com/s/5fj8cns3nglcrcn/TRACKMAP.kml?dl=1 Вот почему я пробовал другим способом.
KML не "мой", это от Google (в вопросе OP). Многоугольники в примерах залиты цветом. Присмотритесь к определениям стиля.
Попробуйте скачать файл kml и загрузить его локально на свою страницу. Ошибка, которую вы получаете, связана с ограничением безопасности, когда Google блокирует вам загрузку ресурсов, находящихся на их сервере. CORS