Google maps 谷歌地图JavaScript API热图层-可以在地图上显示的数据点的限制?
我是谷歌地图JavaScript API新手,我正在谷歌地图上应用热图层,类似于地图热图文档中的示例: 我正在为热图加载大量数据点,但显示的数据量有限。 我认为数据没有任何问题;当我将数据集切成小块时,每次加载地图时,热图都会出现在不同的位置 但是我可以在用法文档()中看到每天有2500个请求的限制,我不知道在这种情况下一个请求的定义是什么 当map加载Google maps 谷歌地图JavaScript API热图层-可以在地图上显示的数据点的限制?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我是谷歌地图JavaScript API新手,我正在谷歌地图上应用热图层,类似于地图热图文档中的示例: 我正在为热图加载大量数据点,但显示的数据量有限。 我认为数据没有任何问题;当我将数据集切成小块时,每次加载地图时,热图都会出现在不同的位置 但是我可以在用法文档()中看到每天有2500个请求的限制,我不知道在这种情况下一个请求的定义是什么 当map加载initMap()时,是否将应用的整个HeatmapLayer视为一个请求 或者,当我创建一个包含4000个数据点的热图时,每个数据点对新的g
initMap()
时,是否将应用的整个HeatmapLayer
视为一个请求
或者,当我创建一个包含4000个数据点的热图时,每个数据点对新的google.maps.LatLng()
的每次调用都被视为4000个单独的请求?如果您检查开发人员控制台,那么
这意味着您每天可以加载25000次地图,用户每秒只能发出1个请求。而这里的无限意味着地图可以同时加载
因此,每次调用API键时,它都算作每天1次加载
注意:每日配额在太平洋时间午夜(PT)重置。按照文档中的示例,我创建了一个示例,创建了10000个点以绘制热图,没有问题。所以它不可能是任何一种利率限制。一定有别的事情在起作用。这个例子甚至没有API密钥,所以在免费计划中
var图、热图;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:2,
中心:{lat:37.775,lng:-122.434},
});
heatmap=新建google.maps.visualization.HeatmapLayer({
数据:getPoints(),
地图:地图
});
}
函数getPoints(){
变量lotsOfMarkers=[];
对于(var i=1;i),热图层是在浏览器中计算的,与API限制无关,正在应用的整个HeatmapLayer被视为一个请求。这是真的。下面的回答显示了使用情况详细信息。加载地图的请求被视为一个请求。您可以绘制的点数没有限制new google.maps.LatLng()
绝对不算作请求。地理编码、地点、方向等都算作请求。您是否有可能使用其中的任何一种?这里有一点关于用法的详细信息:您是否能够通过示例设置JSFIDLE或类似工具?您也可以用这些数字进行实验。我尝试了30k点,conf我的代码与你的代码相似,但仍然不适用于我,但是我的问题最终通过将maxIntensity
属性添加到地图中并将其设置为一个较低的数字(1或2)来解决@Anonomouse很高兴你把它整理好了。这是否意味着你的点总是在绘图,但你看不到任何区别,因为强度太大了?我想是的。1)这些点只显示在地图的某些部分,2)当我放大高密度区域时,这些点会逐渐消失(类似于你大脑中的情况)。我一使用maxIntensity
1)全套点就显示在地图上,2)即使我一路放大,它们仍然可见。我对谷歌地图JavaScript 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>