如何在放大后集中地图中的热图区域?

时间:2015-12-10 09:07:05

标签: javascript google-maps google-maps-api-3 heatmap

我正在使用谷歌地图API来显示热图。在缩放一个级别后,我希望热图区域显示在地图的中心。我也附加了图像,你可以看到地图底部的热图。

render: function() {
    var results = this.model.get('results');
    if (!results)
            return this;

    var data = results[this.model.get('index')];
    if (!data)
            return this;

    if (!data.data.length) {
        data.data.push({
            count: 0,
            lat: 0,
            lng: 0
        });
    }
    showHeatMapData(data);
    var startTime = this.model.get("starttm");
    if(startTime >= 1436985000 && startTime <= 1437244199)
    {
        $("#pichart").show();
    }
    else
    {
        $("#pichart").hide();
    }

    this.heatmap.setData(data);
    this.map.setZoom(20);
    return this;
}

enter image description here

3 个答案:

答案 0 :(得分:1)

试试这个:

this.heatmap.setData(data);

var bounds = new google.maps.LatLngBounds();

for (var i = 0; i < data.length; i++) {
    bounds.extend(data[i]);
}

this.map.setCenter(bounds.getCenter());
this.map.setZoom(20);

答案 1 :(得分:0)

我猜你有经度和纬度包含数组 有些事情看起来像

 var locationarray = [];

 locationarray[0] = new google.maps.LatLng(13.74428, 100.5404525);
 locationarray[1] = new google.maps.LatLng(13.744108, 100.543098);

现在当您加载其他功能时,您只需从您的位置数组中设置地图中心,就像这样

map.setCenter(locationarray[0]);

我希望这会对你有所帮助。

答案 2 :(得分:0)

缩放地图并使之适合所有点:

 function sumTotal() {
        let val1 = document.getElementsByName("val1")[0].value;
        let val2 = document.getElementsByName("val2")[0].value;
        let sum = Number(val1) + Number(val2);
        document.getElementsByName("sum")[0].value = sum;
        vatCalc(sum)
        grandTotal(sum)
    }
    function vatCalc (sum) {
        var sumVat =0.20;
         let vat = sumVat*sum;
         document.getElementsByName("vat")[0].value = vat;
}
function grandTotal (sum, vat) {
      let total = Number(sum) + Number(vat);
      document.getElementsByName("total")[0].value= total;

}