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

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)午夜重置


Pau*_*mas 5

按照文档中的示例,我创建了一个示例,该示例创建了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)

  • 嘿,保罗,感谢您的努力!我已经接受了这个作为答案。我的代码与您的类似,但仍然对我不起作用,但是我的问题最终通过将 `maxIntensity` 属性添加到地图并将其设置为较低的数字(1 或 2)来解决。 (2认同)