2015-09-20 17 views
0

我有一層我試圖推到谷歌地圖。爲什麼我的有效kml顯示爲「INVALID_DOCUMENT」時加載到谷歌地圖

的頁面是在這裏:http://live2.offrs.com/buyerherodev/ziptractselect.html?ZIP=20001

爲KML數據源是在這裏:http://live2.offrs.com/buyerherodev/data/polytract.cfm?ZIP=20001&dummy=1442778330778

當我輸入網址在GLaDOS的將KML,它說,沒有任何錯誤。

但是,當我在我的頁面中加載它時,它顯示「INVALID_DOCUMENT」。

我沒有動態構建kml網址,但一旦構建url,我將它發送到console.log以確認它。沒有問題。

誰能告訴我在哪裏看?由於

下面是地圖的JavaScript:

VAR地圖=新google.maps.Map(的document.getElementById( '地圖畫布')的MapOptions);

var boundaryurl = window.location.protocol + "//" + window.location.host + "/buyerherodev/data/polygon.cfm?TYPE=ZIP&VALUE=" + getUrlVars()["ZIP"] + "&LC=641400FF&LW=3&FC=14F11C2E&F=1&FO=1"; 
var tracturl = window.location.protocol + "//" + window.location.host + "/buyerherodev/data/polytract.cfm?ZIP=" + getUrlVars()["ZIP"]+"&dummy="+(new Date()).getTime(); 

console.log(boundaryurl); 
console.log(tracturl); 

var kmlLayer1 = new google.maps.KmlLayer(boundaryurl, { 
    suppressInfoWindows: true, 
    preserveViewport: false, 
    map: map, 
    zindex: 0, 
    clickable : false 
}); 


var kmlLayer2 = new google.maps.KmlLayer(tracturl, { 
    suppressInfoWindows: true, 
    preserveViewport: false 
}); 

console.log(kmlLayer2); 


google.maps.event.addListener(kmlLayer2,'status_changed', function() { 
    if (!(kmlLayer2.getStatus() == 'OK')) { 
    alert("There are no tracts. Try again."); 
    // window.location="http://domain.com/findterritory_none.cfm"; 
    } 
}); 

kmllayer1沒有問題。 kmllayer2是我今天正在談論的層。這是kmllayer2,這是問題。我把'status_changed'監聽器檢查一個不好的kml,並在這裏報告錯誤。

我錯過了什麼嗎?

感謝

回答

4

的KML文件的內容類型必須爲application/vnd.google-earth.kml+xml,但目前它的application/xml

您必須配置服務器返回正確的內容類型頭:

例使用相同的文件與正確的標題(使用phpfiddle,我不知道它會工作多久):

function init() { 
 
    var mapOptions = { 
 
    zoom: 0, 
 
    center: { 
 
     lat: 0, 
 
     lng: 0 
 
    } 
 
    }; 
 
    map = new google.maps.Map(document.getElementById('map_canvas'), 
 
    mapOptions); 
 

 
    new google.maps.KmlLayer('http://main.xfiddle.com/code_63194890.php', { 
 
    map: map 
 
    }); 
 

 

 
}
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
}
<div id="map_canvas"></div> 
 
<script src="https://maps.googleapis.com/maps/api/js?v=3&callback=init"></script>

+0

非常感謝。這完全解釋了。我正在禿頭弄明白這一點。再次感謝。 – arcee123

相關問題