File 使用本地文件(文件API)添加Kmlayer
我正在尝试将本地KML文件加载到映射,为此我使用FileReader对象(文件API) 要使用google.maps.KmlLayer,我需要使用readAsDataURL将文件转换为数据URL,问题是KML文件没有加载到地图,并且我没有收到任何错误。我认为Kmlayer中的url属性可能不接受数据url 代码如下:File 使用本地文件(文件API)添加Kmlayer,file,api,kml,filereader,File,Api,Kml,Filereader,我正在尝试将本地KML文件加载到映射,为此我使用FileReader对象(文件API) 要使用google.maps.KmlLayer,我需要使用readAsDataURL将文件转换为数据URL,问题是KML文件没有加载到地图,并且我没有收到任何错误。我认为Kmlayer中的url属性可能不接受数据url 代码如下: gp.addEventListeners = function(){ $("#file-upload").change(function (evt){ var fi
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 home edition,它可以正常工作。 然后,像http://localhost/folder/file.kml这样的地址将指向C:\inetpub\wwwroot\folder\file.kml。您只需适当地放置文件
这就是我所做的,我假设这也是你的情况。我担心,对于这些跨源安全预防问题,xmlhttprequests的这些文件接口可能没有解决办法。但是为什么确切的代码使用OpenLayers。@Xavigonza他们有不同的理念,你也可以使用脱机分片你也可以使用一些免费的托管服务,比如谷歌硬盘,但这并不容易。