Javascript 使用谷歌电子表格中的lat-long点绘制热图
以下是我的谷歌电子数据表的链接,其中包含lat-long点: 我在YouTube上学习了Google开发者教程,学习如何从Google电子表格中的点添加标记: 它成功了,我可以为我所有的点添加标记。现在,我需要用这些点做一个热图。它似乎只在地图上的一个区域周围放置了几个点 编辑代码: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
<!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()
,查看它在哪里停止。