小编Ste*_*ght的帖子

关于Google Maps API配额限制的地方库

快速问题,只是为了澄清措辞和含义(因为它已经改变了几次地图加载...)

Places API常见问题解答中有以下两个声明:

Google Places API具有以下查询限制:

具有API密钥的用户每24小时允许1 000个请求.通过API控制台验证其身份的用户每24小时允许10万个请求.通过在控制台中启用结算,验证需要信用卡.我们要求您的信用卡纯粹用于验证您的身份.使用Places API不会向您的信用卡收费.虽然下限足以进行开发和测试,但我们建议在启动应用程序之前启用上限.可以申请额外配额.如果获得批准,额外配额是免费的.如果在将来某个阶段有一个选项可用于支付额外配额,那么该配额将超过现有的免费配额,您需要明确注册.

请注意,某些服务可能具有乘数:

文本搜索服务的乘数为10倍.也就是说,您所做的每个文本搜索请求将被视为针对您的配额的10个请求.雷达搜索服务的乘数为5倍.也就是说,您所做的每个雷达搜索请求将被视为针对您的配额的5个请求.如果您已将Google Places API作为Maps API for Business合同的一部分购买,则乘数可能会有所不同.有关详细信息,请参阅Google Maps API for Business文档.

这意味着Google Places API的使用限制为每天100,000次查询,如果您正在进行文本搜索,则限制为10,000次.

但是,在Uplift页面上,它显示以下内容:

如果您正在开发仅需要搜索地点且不提交新地点或放置凹凸的基于Web的应用程序,则应使用Maps API的Places库,而不是使用Places API Web服务.位置库为每个最终用户而不是每个键分配一个配额.这意味着您的可用配额会随着您的用户群而增加,而不是以固定金额为上限.

我通过以下方式使用Places API:

https://maps.googleapis.com/maps/api/js?key=XXX&libraries=places
...
service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);
Run Code Online (Sandbox Code Playgroud)

还有一些细节搜索和照片搜索.

因此我的问题是; 鉴于我使用Places API,我是否受到我的应用程序的100,000个查询限制,或者我在应用程序级别基本上没有限制,因为我的配额是每个最终用户?(即每个唯一的IP?如果我有10,000个用户,我的整个用户群有100,000*10,000的有效配额?)

编辑:

为清楚起见:如果我将API密钥丢入https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=XXXX,它将在Google API控制台上增加我的Places配额计数,但是如果我通过我的JS应用程序运行查询,我看不到配额使用更改.我想确保我不会突然受到大量配额的影响.

google-maps google-maps-api-3 google-places-api

7
推荐指数
1
解决办法
4141
查看次数

Ember.js弃用了registerImplementation以支持App.initializer

我正在使用HashLocation的扩展来为Ember.js实现一个hashbang url类型.

这是代码片段:

(function() {

var get = Ember.get, set = Ember.set;

Ember.Location.registerImplementation('hashbang', Ember.HashLocation.extend({ 

    getURL: function() {
        return get(this, 'location').hash.substr(2);
    },

    setURL: function(path) {
        get(this, 'location').hash = "!"+path;
        set(this, 'lastSetURL', "!"+path);
    },

    onUpdateURL: function(callback) {
        var self = this;
        var guid = Ember.guidFor(this);

            Ember.$(window).bind('hashchange.ember-location-'+guid, function() {
                Ember.run(function() {
                    var path = location.hash.substr(2);
                    if (get(self, 'lastSetURL') === path) { return; }

                    set(self, 'lastSetURL', null);

                    callback(location.hash.substr(2));
                });
            });
        },

        formatURL: function(url) {
            return '#!'+url;
        }

    }));

})();
Run Code Online (Sandbox Code Playgroud)

我通过重新打开路由器来使用它:

App.Router.reopen({
    location: 'hashbang'
}); …
Run Code Online (Sandbox Code Playgroud)

javascript ember.js

6
推荐指数
1
解决办法
396
查看次数

jenkins 管道中的 Groovy 字符串插值 - 混合凭据和常量

与我的 jenkinsfile 的一部分苦苦挣扎,这需要混合凭据和传递给函数的定义变量。

函数看起来像这样:

platformList.each { platform -> 
    stage("Build ${platform}") {
        withCredentials([usernamePassword(credentialsId: 'XXX-XXX-XX', passwordVariable: 'unity_password', usernameVariable: 'unity_username')]) {
            sh label: "Build App", script: '${WORKSPACE}/ci/build_app.sh build_app ${platform} ${deployment} $unity_username $unity_password'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图遵守这里讨论的关于字符串插值的建议:https : //www.jenkins.io/doc/book/pipeline/jenkinsfile/#string-interpolation

但是,我似乎无法将内插凭据与单引号以及${platform}每个循环中定义的派生变量混合使用。

platformList是一个包含 1+ 个字符串的数组。它是这样生成的:

script {
    if (params['windows'] == true) {
        platformList.add("windows")
    }
    if (params['osx'] == true) {
        platformList.add("osx")
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果我按原样运行此脚本,则该${platform}变量将作为空白字符串传递给sh调用。

如果我双引号sh调用它可以正常工作,但是我会收到有关通过插值传递的不安全凭据的警告。

${deployment}变量是一个定义为作业执行一部分的字符串参数,解析没有问题,所以我认为这是一个与each循环相关的问题。

groovy jenkins-groovy jenkins-pipeline

3
推荐指数
1
解决办法
2895
查看次数