over_query_limit javascript v3

时间:2017-03-20 11:05:05

标签: javascript google-maps-api-3

在我的应用程序中,我试图将一个Region(city)存储在我的Location模型中以及lngLat和地址。

事情是,对于新的地点来说,这将很容易,因为当我创建时,我会这样做。对于旧位置,我写了这段代码

function geocodeLatLng(geocoder, latlngStr, callback) {
var latlng = { lat: parseFloat(latlngStr.split(',')[0]), lng: parseFloat(latlngStr.split(',')[1]) };
var city;

geocoder.geocode({ 'location': latlng }, function (results, status) {

    if (status === google.maps.GeocoderStatus.OK) {
        var address = results[0].address_components;
        for (var p = address.length - 1; p >= 0; p--) {
            if (address[p].types.indexOf("locality") != -1) {
                console.log(address[p].long_name);
                city = address[p].long_name;
                callback(city);
            }
        }
    }

});

}

我称之为

self.getRegion = function () {
    for (var i = 0; i < self.rawLocations().length; i++) {
        var location = self.rawLocations()[i];
        setTimeout(
             geocodeLatLng(geocoder, location.systemRepresentation(), function (res) {
             }), 250);// End of setTimeOut Function - 250 being a quarter of a second. 
    }
}

问题是我在5次通话后得到over_query_limit。我将把它自己的位置存储在数据库中,现在我必须这样做来修复旧的位置。

任何标题?

1 个答案:

答案 0 :(得分:1)

谷歌地图javascript库每秒最大通话次数以及每小时费率,您是否尝试以高于其每秒费率的速度进行地理编码?

5确实看起来很低,因为他们自己的文件通知用户它是每秒50(https://developers.google.com/maps/documentation/geocoding/usage-limits

您还注册了密钥并正在使用它吗?这可能会有所不同(如果谷歌帐户已经注册了地图API,有时您可以使用没有密钥的系统)