2016-03-07 96 views
1

我正在一個KML圖層的網站中嵌入谷歌地圖,我正在努力解決我認爲是一個非常基本的問題。谷歌地圖 - 無法訪問KML文件的KML層

我的計算機上有一個KML文件,我想將它添加到我的地圖中作爲KML層,但我不知道如何「訪問」該特定文件。我已將網址設置爲url: '/../data/Bus27route.kml.xml',,目前我的Google地圖上沒有任何內容出現。現在,''標記之間的內容就是目錄「data」中文件「Bus27route.kml.xml」的簡單方向。

訪問我的計算機上的文件的標記應該是什麼?或者是我的錯誤在我的代碼中的其他地方訪問此文件?

謝謝任何​​認爲他們可以幫助我的人!任何意見,建議,問題等都非常感謝。

function initMap(lat, lng) { 
    var myLatLng = {lat: lat, lng: lng}; 

    // Create a map object and specify the DOM element for display. 
    var map = new google.maps.Map(document.getElementById('bus_1_map'), { 
    center: myLatLng, 
    scrollwheel: false, 
    zoom: 12 
    }); 

var bus27Route = new google.maps.KmlLayer({ 
    url: '/../data/Bus27route.kml.xml', 
    map: map 
    }); 
} 
+1

網址KMLLayer必須是公開的(由谷歌的服務器訪問)。您需要提供完整的網址。 – geocodezip

回答

0

訪問KML文件不能在本地完成每項基於谷歌的服務必須通過互聯網上的可公開訪問的服務器進行。它試圖將您的文件從互聯網訪問的服務器上(也有免費服務)

這種形式的谷歌地圖開發

你的文件被公開在互聯網上託管。對於將KML加載到KMLLayer中的所有應用程序,這是要求 。谷歌的服務器 需要能夠找到並檢索內容,以便在地圖上顯示 - 這也意味着該文件不能在 受密碼保護的頁面上。

https://developers.google.com/maps/tutorials/kml/#your_kml_file

+0

我使用谷歌網站製作了免費網站,並按照開發者網站的指示上傳了我的KML文件。我的代碼現在看起來像這樣,但是我的地圖仍然顯示出來,但是我的KML層不會'函數initMap(lat,lng)var myLatLng = {lat:lat,lng:lng}; VAR地圖=新google.maps.Map(的document.getElementById( 'bus_1_map'),{ 中心:myLatLng, 滾輪:假, 變焦:12 }); VAR bus27Route =新google.maps.KmlLayer({ URL: 'https://sites.google.com/site/kmlroute/home/kml', 圖:圖 });' – namore

+0

我不理解...可能會更好posti它作爲一個新的問題 – scaisEdge

+0

並最終在這裏評論鏈接到新的問題.. – scaisEdge

0

當您添加KmlLayer,谷歌地圖API告訴給谷歌服務器「在您的KML文件是互聯網上。」

然後谷歌機器人訪問您的公共服務器獲取KML文件。

之後,在Google Server中生成地圖圖塊,最後在地圖上顯示。

這就是爲什麼你必須把你的KML文件放在公共服務器上。