大数据地理热图(google)
Geo heat map(google) with large data
我想在google地图中绘制热图以显示出租车行程一个城市的分布。
我得到了大约 4000 条出租车起始位置(纬度和经度)的数据。
这是我的一些脚本:
首先我设置了 google 地图:
var hongkong = new google.maps.LatLng(22.28552,114.15769 );
map = new google.maps.Map(document.getElementById('map'), {
center: hongkong,
zoom: 11,
});
然后,我从 JSON 文件中读取数据并制作热图:
jQuery.getJSON("data.json", function(data) {
var heatmapData = [];
jQuery.each(data, function(key, val) {
heatmapData.push(new google.maps.LatLng(val.fromLocation.lat, val.fromLocation.lng));
});
var heatmap = new google.maps.visualization.HeatmapLayer({
data: heatmapData
});
heatmap.setMap(map);
});
我得到了什么:
你什么也看不见。然后我缩小,我得到:
我预期是这样的:
有什么问题?是不是我得到的数据太接近了?
有没有更好的方法绘制热图来显示出租车的分布?谢谢。
您的 JSON 文件已将纬度和经度作为字符串。 Google 的 LatLng 构造函数期望这些值是数字。试试这个,它将它们从 "22.37898"
之类的字符串转换为 22.37898
这样的浮点数
heatmapData.push(new google.maps.LatLng(
parseFloat(val.fromLocation.lat),
parseFloat(val.fromLocation.lng))
);
我想在google地图中绘制热图以显示出租车行程一个城市的分布。
我得到了大约 4000 条出租车起始位置(纬度和经度)的数据。
这是我的一些脚本:
首先我设置了 google 地图:
var hongkong = new google.maps.LatLng(22.28552,114.15769 );
map = new google.maps.Map(document.getElementById('map'), {
center: hongkong,
zoom: 11,
});
然后,我从 JSON 文件中读取数据并制作热图:
jQuery.getJSON("data.json", function(data) {
var heatmapData = [];
jQuery.each(data, function(key, val) {
heatmapData.push(new google.maps.LatLng(val.fromLocation.lat, val.fromLocation.lng));
});
var heatmap = new google.maps.visualization.HeatmapLayer({
data: heatmapData
});
heatmap.setMap(map);
});
我得到了什么:
你什么也看不见。然后我缩小,我得到:
我预期是这样的:
有什么问题?是不是我得到的数据太接近了?
有没有更好的方法绘制热图来显示出租车的分布?谢谢。
您的 JSON 文件已将纬度和经度作为字符串。 Google 的 LatLng 构造函数期望这些值是数字。试试这个,它将它们从 "22.37898"
之类的字符串转换为 22.37898
heatmapData.push(new google.maps.LatLng(
parseFloat(val.fromLocation.lat),
parseFloat(val.fromLocation.lng))
);