我有一個映射頁面,它檢索一個JSON響應,並創建相關的點陣加載熱圖。谷歌地圖V3熱圖不會顯示在頁面加載
所有這一切都在所需的初始化查詢中加載在jquery document.ready中調用。
雖然這裏是奇怪的東西,但所有的外部數據都很好,並且填充得很好,點陣也很好。
但是,當我在熱圖上調用setMap(map)方法時,它不顯示。但奇怪的是,如果我使用頁面上的鏈接打開或關閉它,它會顯示。有任何想法嗎??在螢火蟲中完全沒有錯誤。
var map;
var markers = [];
var markerLatLngArray = [];
function toggleHeatmap() {
heatmap.setMap(heatmap.getMap() ? null : map);
}
function initialize() {
var map_options = {
center: new google.maps.LatLng(53.4902, -7.96),
zoom: 7,
mapTypeId: google.maps.MapTypeId.TERRAIN,
draggableCursor: 'crosshair',
mapTypeControl: true,
scaleControl: true,
streetViewControl: false,
overviewMapControl: false,
overviewMapControlOptions: {
opened: false
}
};
map = new google.maps.Map(document.getElementById('map_canvas'), map_options);
google.maps.event.addListenerOnce(map, 'idle', function(){
document.getElementById('ajax_loading_icon').style.display = "none";
document.getElementById('map_canvas').style.visibility = "visible";
});
jQuery.get("<?php echo $data_url; ?>", {}, function(data) {
jQuery(data).find("marker").each(function() {
var marker = jQuery(this);
var latlng = new google.maps.LatLng(parseFloat(marker.attr("lat")),
parseFloat(marker.attr("long")));
markerLatLngArray.push(latlng);
});
});
pointArray = new google.maps.MVCArray(markerLatLngArray);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
}
「this.map」的價值是什麼?它和全球的「地圖」一樣嗎? – geocodezip
@geocodezip對不起,它是同一個,我只是把這個,看看它是不是一些範圍問題,只是在黑暗中拍攝真的。原圖僅爲地圖 – jiraiya
請修正發佈的代碼以反映真實問題。如果這真的是「地圖」,而不是「this.map」,那麼它可能是一個計時問題(地圖在熱圖創建之後纔會初始化)。你能提供一個展示問題的jsfiddle(或者我們可以運行你的代碼的足夠的數據)嗎? – geocodezip