Google maps 谷歌地图JavaScript API热图层-可以在地图上显示的数据点的限制?

Google maps 谷歌地图JavaScript API热图层-可以在地图上显示的数据点的限制?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我是谷歌地图JavaScript API新手,我正在谷歌地图上应用热图层,类似于地图热图文档中的示例: 我正在为热图加载大量数据点,但显示的数据量有限。 我认为数据没有任何问题;当我将数据集切成小块时,每次加载地图时,热图都会出现在不同的位置 但是我可以在用法文档()中看到每天有2500个请求的限制,我不知道在这种情况下一个请求的定义是什么 当map加载initMap()时,是否将应用的整个HeatmapLayer视为一个请求 或者,当我创建一个包含4000个数据点的热图时,每个数据点对新的g

我是谷歌地图JavaScript API新手,我正在谷歌地图上应用热图层,类似于地图热图文档中的示例:

我正在为热图加载大量数据点,但显示的数据量有限。

我认为数据没有任何问题;当我将数据集切成小块时,每次加载地图时,热图都会出现在不同的位置

但是我可以在用法文档()中看到每天有2500个请求的限制,我不知道在这种情况下一个请求的定义是什么

当map加载
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>