2014-04-05 18 views
0

我正在嘗試將本地KML文件加載到映射,爲此我使用FileReader對象(File API)。使用本地文件添加KmlLayer(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); 
     }  
    }); 
} 

我能做些什麼?我需要幫助:(

對不起,我的英語水平。

回答

0

如果你只是想用Web瀏覽器打開包含地圖查看器和覆蓋KML圖層的html文件,所有文件被存儲在本地文件系統,我會啓用本地主機。

然後,你可以使用本地文件的真實URL。如果谷歌「Windows 7本地主機」,你可以找到一個視頻顯示如何啓用Windows 7的嵌入式IIS。它的作品 https://www.youtube.com/watch?v=Ybn6Q92m4xg

然後,一個地址如http:// local host/folder/file.kml將指向C:\ inetpub \ wwwroot \ folder \ file.kml。你只需要適當地放置文件。

這就是我所做的,我假設這也是你的情況。恐怕可能會出現這些跨源安全防護問題的xmlhttprequests文件接口沒有解決方法。

+0

但爲什麼確切的代碼與OpenLayers一起工作。 @xavigonza – ekaitht27

+0

他們有不同的哲學,你也可以有OL的離線瓷磚。你也可以使用一些免費的託管服務,如谷歌驅動器,但它並不容易。 – xavigonza

相關問題