使用本地文件添加KmlLayer(文件API)

时间:2014-04-05 11:00:38

标签: file api kml filereader

我正在尝试将本地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);
      }     
  });
}

我能做什么?我需要帮助:(

抱歉我的英文。

1 个答案:

答案 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的这些文件接口没有解决方法。