我正在尝试将本地KML文件加载到地图中,为此我正在使用FileReader对象(File API)。
要使用google.maps.KmlLayer 我需要使用readAsDataURL将文件转换为数据URL,问题是KML文件没有加载到地图中,我没有收到任何错误。我认为可能是 KmlLayer 中的 url 属性不接受数据 url。
这是代码:
gp.addEventListeners = function(){
$("#file-upload").change(function (evt){
var file = evt.target.files[0]; // FileList object
var reader = new FileReader();
reader.onloadend = function () {
var ctaLayer = new google.maps.KmlLayer({
url: reader.result
});
ctaLayer.setMap(gp.map);
}
if (file) {
reader.readAsDataURL(file);
}
});
}
我能做什么?我需要帮助:(
对不起我的英语。
如果您只想使用 Web 浏览器打开一个包含地图查看器并叠加 kml 图层的 html 文档,所有文件都存储在您的本地文件系统中,我会启用 localhost。
然后,您可以对本地文件使用真正的 URL。如果你谷歌"Windows 7 localhost",你可以找到一个视频,展示如何启用Windows 7的嵌入式IIS。我有Windows 7家庭版,它可以工作。https://www.youtube.com/watch?v=Ybn6Q92m4xg
然后,像 http://localhost/folder/file.kml 这样的地址将指向 C:\inetpub\wwwroot\folder\file.kml。您只需要适当地放置文件。
这就是我所做的,我假设这也是你的情况。恐怕这些文件接口对于这些跨源安全预防问题的 xmlhttprequests 没有解决方法。