我有一個帶有地圖的網絡應用程序。我添加了一個漂亮的小自定義地圖控件來打開和關閉地圖上的不同圖層。目前只有兩層,在大多數瀏覽器中都很好用。谷歌地圖KMZ文件無法在IE8和IE7中渲染
不包括IE8 + 7。打開時,地圖上沒有顯示任何圖層。據我可以告訴地圖加載kmz/kml文件(當preserveViewport設置爲false時,地圖移動到正確的位置),但它們只是沒有出現。一層包含多段線,另一層包含標記。我使用的代碼如下:
function someFunction() {
//code to initialise map etc goes here...
var layers = [];
//Create 1st layer
var exchangeslayer = new google.maps.KmlLayer('http://link.to.file/exchanges.kmz'
suppressInfoWindows: true,
preserveViewport: true
});
layers.push({name: "Exchanges", layer: exchangeslayer});
//Code to create second layer
var nyclayer = new google.maps.KmlLayer('http://www.nyc.gov/html/dot/downloads/misc/cityracks.kml'
suppressInfoWindows: true,
preserveViewport: false
});
layers.push({name: "NY City Tracks", layer: nyclayer});
addCustomLayerControls(layers);
}
function addCustomLayerControls(layers) {
//there is code here that would generate the divs for the custom map control
var container; //container is a div element created via javascript
for (var i = 0; i < layers.length; i++) {
this.addLayerLabelToContainer(layers[i], container);
}
//some more code
}
function addLayerLabelToContainer(layer, container) {
var map; //Assume I get a reference to the map
//some code here to make pretty labels for the map controls...
var layerLabel; // layerLabel is a div element created via javascript
google.maps.event.addDomListener(layerLabel, 'click', function() {
if(layer.layer.map == null) {
layer.layer.setMap(map);
} else {
layer.layer.setMap(null);
}
});
}
編輯我的原始問題發現這個錯誤後發生任何kml/kmz文件。 – gordon
KmlLayer.getStatus()會告訴你任何有用的東西嗎? – geocodezip
@geocodezip getStatus()每次都會返回'OK',但仍然沒有顯示在地圖上。 – gordon