无法将KML文件渲染到Google地图中

时间:2018-09-09 14:14:22

标签: javascript google-maps kml geoxml3

我的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

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

1 个答案:

答案 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,并且不受同一来源政策的约束。