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



我正在尝试将本地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 没有解决方法。

相关内容

  • 没有找到相关文章

最新更新