我的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
任何人都知道我该如何解决这个问题?
答案 0 :(得分:0)
GeoXml3使用浏览器的XmlHttpRequest对象,该对象受same origin policy约束。您无法从https://developers.google.com
(不同的来源)访问http://localhost:8080
。
要使用GeoXml3,请将该文件复制到您的服务器并通过相对URL进行访问,或者通过http://localhost:8080
上的代理进行访问。
example loading that URL through a proxy
example using the proxy
property of GeoXml3
另一种选择是使用Google Maps Javascript API v3 KmlLayer
,该API可从Google的服务器访问KML,并且不受同一来源政策的约束。