2014-02-05 76 views
1

出於某種原因,我不能讓geoxml3加載我的KML文件。我試過使用publicly available URL for the file,並且Chrome,Safari和Firefox中的文件的本地引用都沒有任何效果。當我使用Chrome瀏覽器時,我收到一條控制檯消息,內容爲GeoXML3無法檢索KML文件

無法檢索文件。

我的代碼是非常簡單的:

function initialize() { 
var infowindow = new google.maps.InfoWindow({size: new google.maps.Size(150,50) }); 
var map_canvas = document.getElementById('map_canvas'); 
var center = new google.maps.LatLng(53, -88); 
var map_options = { 
    center: center, 
    zoom: 4, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
}; 

var map = new google.maps.Map(map_canvas, map_options); 

var myParser = new geoXML3.parser({map: map, singleInfoWindow: true}); 
myParser.parse('https://sites.google.com/site/.../home/kml-files/ontario_regions_yan_1.kml'); 
} 

我已經嘗試了所有其他問題提供了多種解決方案,但一直無法獲得要加載的文件!有沒有簡單的我失蹤?

回答

4

事實證明,不幸的是我沒有geoxml3.js正確版本的投放位置。我從polys branch下載文件,一切正常。

+1

這個答案應該提出來..它也爲我做了詭計,我覺得這是一個重要的注意事項 – rorofromfrance

+0

如果它爲你做了詭計,接受這個答案 - 如果新答案回答,重新接受答案並不丟臉你的問題更好,沒有任何東西禁止你接受你自己的答案。 –

+0

我也犯了同樣的錯誤。 – joemurphy

3

geoxml3使用XMLHttpRequest來獲取KML,XMLHttpRequest的一個具有相同的域限制。 KML需要與正在加載它的頁面處於相同的域,或者通過與加載該頁面的頁面位於同一個域中的代理加載。

SO question - xmlHttpRequest and cross-site restriction

your KML on geocodezip.com through a proxy

KmlLayer doesn't have that restriction (google server is loading the KML directly)

域需要是相同。相對URL確保。嘗試在頁面上加載的http://www.geocodezip.comhttp://geocodezip.com發生了一些事:

geocodezip.comwww.geocodezip.com是不同域(無論它們多麼相似的外觀)。相對路徑是相對於頁面正在從(不是geoxml3.js腳本)

+0

非常感謝偉大的反應和演示。您能詳細說明'KML需要與加載它的頁面處於同一個域中'的意思嗎?'?當我將kml放在與geoxml3.js文件相同的文件夾中時,我認爲我正在這麼做? – adbo

+0

該域名需要保持一致。相對URL確保。嘗試從'http:// www.geocodezip.com'上的頁面加載'http:// geocodezip.com'中的內容不起作用:[working](http://www.geocodezip.com/geoxml3_test/ ?v3_geoxml3_kmltest_linkto.html文件名= HTTP://www.geocodezip.com/geoxml3_test/SO_test_20140205_fill1.kml),[不工作(http://www.geocodezip.com/geoxml3_test/v3_geoxml3_kmltest_linkto.html?filename=http:// geocodezip.com/geoxml3_test/SO_test_20140205_fill1.kml),'geocodezip.com'和'www.geocodezip.com'是不同域(無論它們多麼相似的外觀) – geocodezip

+0

好抱歉,現在我很困惑。您的初始響應已經與通過geoxml3加載了我的kml並且正在響應鼠標懸停的地圖相關聯。現在我只看到一個直接添加kml圖層的例子。我需要geoxml來訪問kml內的多邊形。我不認爲我可以用這個特定的客戶端來實現代理解決方案。您能否詳細說明如何讓geoxml在網絡服務器上訪問該文件?編輯:抱歉貼這沒有重新加載,並沒有看到你的迴應。 thx – adbo