google maps v3 heatmap not displaying on page load

人盡茶涼 提交于 2019-12-12 18:24:52

问题


I have a mapping page which retrieves a json response and creates the relevant array of points to load a heatmap.

All of this is in the required initialize query which is loaded is called in a jquery document.ready.

Here is the strange thing though, all the external data is returning fine and being populated fine, the points array is fine also.

However when I call the setMap(map) method on the heatmap it does not display. But weirdly if I use an on page link to toggle it on or off it will display. Any ideas?? No errors at all in firebug.

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);

}

回答1:


It is a timing problem. The map is not initialized until after heatmap.setMap is called.



来源:https://stackoverflow.com/questions/17996350/google-maps-v3-heatmap-not-displaying-on-page-load

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!