我是谷歌地图JavaScript API的新手,我正在谷歌地图上应用热图图层,类似于地图热图文档中的示例:
https://developers.google.com/maps/documentation/javascript/examples/layer-heatmap
我正在为热图加载大量数据点,但仅显示有限量。
我没有看到数据有任何问题;当我将数据集切割成较小的块时,每次加载地图时热图都会出现在不同的地方。
但我可以在使用文档(https://developers.google.com/maps/documentation/javascript/usage)中看到,每天有2,500个请求的限制,我不知道一个请求的定义是什么场景。
当地图加载initMap()
时,应用的整个HeatmapLayer
被视为一个请求吗?
或者就是说,当我创建一个包含4,000个数据点的热图时,每个数据点的new google.maps.LatLng()
每次调用被视为 4,000个单独的请求?
答案 0 :(得分:4)
如果您检查开发者控制台,Google Maps JavaScript API具有以下配额。
这意味着您每天可以加载地图25,000次,而用户每秒只能发出1次请求。虽然这里的无限制意味着地图可以同时加载。
因此,每次拨打this之类的API密钥时,每天都会计入1次。
注意:每日配额在太平洋时间午夜(PT)重置
答案 1 :(得分:4)
按照文档中的示例,我创建了一个示例,创建了10,000个点以在热图上绘图,没有任何问题。所以它不能是任何一种速率限制。必须有其他的东西在起作用。这个例子甚至没有API密钥,所以在免费计划上。
Ten thousand heatmap point demo
<div id="map"></div>
<script>
var map, heatmap;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: {lat: 37.775, lng: -122.434},
});
heatmap = new google.maps.visualization.HeatmapLayer({
data: getPoints(),
map: map
});
}
function getPoints() {
var lotsOfMarkers = [];
for( var i = 1; i <= 10000; i++) {
var random = new google.maps.LatLng( (Math.random()*(85*2)-85), (Math.random()*(180*2)-180) );
lotsOfMarkers.push(random);
}
return lotsOfMarkers;
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?&libraries=visualization&callback=initMap">
</script>