我正在尝试将本地KML文件加载到地图中,为此我使用的是FileReader对象(File API)。
要使用google.maps.KmlLayer,我需要使用readAsDataURL将数据转换为数据网址,问题是KML文件没有加载到地图而且我没有收到任何错误。我认为KmlLayer中的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);
}
});
}
我能做什么?我需要帮助:(
抱歉我的英文。
答案 0 :(得分:0)
如果您只想使用Web浏览器打开包含地图查看器并覆盖kml图层的html文档,所有文件都存储在本地文件系统中,我将启用localhost。
然后,您可以使用本地文件的真实URL。如果你google" 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的这些文件接口没有解决方法。