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

问题描述 投票:0回答:1

我的谷歌地图代码

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

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

javascript google-maps kml geoxml3
1个回答
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,它可以从Google服务器访问KML,并且不受同一原始政策的约束。

© www.soinside.com 2019 - 2024. All rights reserved.