我的谷歌地图代码
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对象,该对象受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
,它可以从Google服务器访问KML,并且不受同一原始政策的约束。