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

时间:2017-03-08 09:29:45

标签: 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)中看到,每天有2,500个请求的限制,我不知道一个请求的定义是什么场景。

当地图加载initMap()时,应用的整个HeatmapLayer被视为一个请求吗?

或者就是说,当我创建一个包含4,000个数据点的热图时,每个数据点的new google.maps.LatLng()每次调用被视为 4,000个单独的请求

2 个答案:

答案 0 :(得分:4)

如果您检查开发者控制台,Google Maps JavaScript API具有以下配额。

enter image description here

这意味着您每天可以加载地图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>
相关问题