0

我的谷歌地图代码

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

任何人都知道我该如何解决这个问题?

4

1 回答 1

0

GeoXml3使用浏览器的 XmlHttpRequest 对象,该对象受制于同源策略。您无法https://developers.google.comhttp://localhost:8080(不同来源)访问。

要使用 GeoXml3,要么将该文件复制到您的服务器并通过相对 URL 访问它,要么通过http://localhost:8080.

通过代理加载该 URL 的示例

使用proxyGeoXml3 属性的示例

另一种选择是使用 Google Maps Javascript API v3 KmlLayer,它从 Google 的服务器访问 KML,并且不受相同来源政策的约束。

于 2018-09-09T15:36:47.917 回答