Ano*_*use 9 google-maps google-maps-api-3
我是谷歌地图JavaScript API的新手,我在谷歌地图上应用了热图图层,类似于地图热图文档中的示例:
https://developers.google.com/maps/documentation/javascript/examples/layer-heatmap
我正在为热图加载大量数据点,但只显示有限数量的数据点.
我没有看到数据有任何问题; 当我将数据集切割成较小的块时,每次加载地图时,热图都会出现在不同的位置.
但我可以使用文档(见https://developers.google.com/maps/documentation/javascript/usage)是有每天2500所请求的限制,我不知道的定义是什么一个请求是在这种情况下.
是否在地图加载时initMap(),应用的整个HeatmapLayer被视为一个请求?
或者是,当我创建一个包含4,000个数据点的热图时,每个数据点的每个调用new google.maps.LatLng()被认为是4,000个单独的请求?
小智 5
好吧,如果您检查开发者控制台,则Google Maps JavaScript API具有以下配额。
这意味着您每天可以加载地图25,000次,而用户每秒只能发出1个请求。虽然这里的无限表示地图可以同时加载。
所以每次调用喜欢你的API密钥的时间这,这算不算每天1个负载。
注意:每日配额会在太平洋时间(PT)午夜重置
按照文档中的示例,我创建了一个示例,该示例创建了10,000个点,可以在热图中进行绘制,没有任何问题。因此,它不能是任何一种速率限制。一定还有其他的作用。这个示例甚至没有API密钥,因此免费计划也是如此。
<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>
Run Code Online (Sandbox Code Playgroud)