Google Map PlaceServiceのgetDetails()が思うように結果を返してくれないとき

グーグル

グーグルマップAPIで、お店とか施設の情報を取得できるPlacesServiceというものがあります

以下のようなコードで、複数の施設情報を一気に取得しようとしたんですが、なぜか中途半端な結果しか返してきません

for (var i = 0; i < markers.length; i++) {
    var service = new google.maps.places.PlacesService(Map);
    service.getDetails({
        placeId: "<詳細を知りたいPlace idを指定>",
        fields: ['name', 'geometry']
    }, function (place, status) {
        console.log("result()" + status);
    });
}

ログを確認してみると「OVER_QUERY_LIMIT」というエラーが出てました

調べてみると、どうやら1秒あたりに呼び出せるAPIの回数にも制限があって、それが50回とのことです

確かにデータ数的には70個以上あったので、まさにその制限に引っかかったらしいです

ただ、厄介なことにgetDetails()は一度に一個の場所しかリクエストできません

そんな制限つけるぐらいなら複数のplace_idを指定して、その結果を一気に返してくれれば良いのに。。。

しょうがないので、getDetails()はその地点をクリックしたときのイベント内で取得するように変更しました

ただし、クリックしてからAPIを叩くから、あらかじめ取得しておくのに比べて多少ロスが出ますが致し方ありません