Javascript 使用谷歌电子表格中的lat-long点绘制热图

Javascript 使用谷歌电子表格中的lat-long点绘制热图,javascript,google-maps,google-sheets,heatmap,Javascript,Google Maps,Google Sheets,Heatmap,以下是我的谷歌电子数据表的链接,其中包含lat-long点: 我在YouTube上学习了Google开发者教程,学习如何从Google电子表格中的点添加标记: 它成功了,我可以为我所有的点添加标记。现在,我需要用这些点做一个热图。它似乎只在地图上的一个区域周围放置了几个点 编辑代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Flickr Data Visua

以下是我的谷歌电子数据表的链接,其中包含lat-long点:

我在YouTube上学习了Google开发者教程,学习如何从Google电子表格中的点添加标记:

它成功了,我可以为我所有的点添加标记。现在,我需要用这些点做一个热图。它似乎只在地图上的一个区域周围放置了几个点

编辑代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Flickr Data Visualization Map</title>

<style>
  html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
  }

  #map_canvas {
    width: 100%;
    height: 100%;
  }
</style>

<script src="http://maps.googleapis.com/maps/api/js?libraries=geometry,visualization&sensor=true"></script>

<script>
  // The web service URL from Drive 'Deploy as web app' dialog.
  var DATA_SERVICE_URL = "https://script.google.com/macros/s/AKfycbwrkOm22MKwgTvbrtMUtUc6qDwAfnA_rCCua2RGtLRYtUPGwRA/exec?jsonp=callback";

  var map;
  var heatmapData = [ ];

  function initialize() {
    map = new google.maps.Map(document.getElementById('map_canvas'), {
      center: new google.maps.LatLng(37.09024, -95.712891),
      zoom: 3,
      maxZoom: 20,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var scriptElement = document.createElement('script');
    scriptElement.src = DATA_SERVICE_URL;
    document.getElementsByTagName('head')[0].appendChild(scriptElement);
  }

function callback(data) {

    var heatmapData = [ ];

   for ( var i = 0; i < data.length; i++ ) {
    heatmapData.push( new google.maps.LatLng( data[i][0], data[i][1] ) );
}


var heatmap = new google.maps.visualization.HeatmapLayer( {
    data : heatmapData

} );


 }

</script>
</head>

  <body onload="initialize()">
    <div id="map_canvas"></div>

  </body>
</html>

Flickr数据可视化地图
html,正文{
保证金:0;
填充:0;
宽度:100%;
身高:100%;
}
#地图画布{
宽度:100%;
身高:100%;
}
//驱动器“作为web应用部署”对话框中的web服务URL。
var数据\服务\ URL=”https://script.google.com/macros/s/AKfycbwrkOm22MKwgTvbrtMUtUc6qDwAfnA_rCCua2RGtLRYtUPGwRA/exec?jsonp=callback";
var映射;
var heatmapData=[];
函数初始化(){
map=new google.maps.map(document.getElementById('map_canvas'){
中心:新google.maps.LatLng(37.09024,-95.712891),
缩放:3,
maxZoom:20,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var scriptElement=document.createElement('script');
scriptElement.src=数据\服务\ URL;
document.getElementsByTagName('head')[0].appendChild(scriptElement);
}
函数回调(数据){
var heatmapData=[];
对于(变量i=0;i
您的问题只是如何将数据推送到数组:基本上是在每次迭代时重置数组。改用
.push()

function callback( data ) {
    var headmapData = [];

    for ( var i = 0; i < data.length; i++ ) {
        heatmapData.push( new google.maps.LatLng( data[i][0], data[i][1] ) );
    }

    var heatmap = new google.maps.visualization.HeatmapLayer( {
        data : heatmapData
    } );
}
函数回调(数据){
var headmapData=[];
对于(变量i=0;i
感谢您回复我的帖子。:)我按照您的建议编辑了代码,现在它所做的只是显示一个空白地图。我在上面的原始问题中发布了经过编辑的代码。请使用JSFIDLE作为示例。然后执行一些
console.log()
,查看它在哪里停止。