我有一个Android应用程序,我正在使用Google地理编码API来获取地址的GPS坐标。目前我正在使用以下可正常工作的URL:
问题是,在Google的新定价发生变化之后,上述API是否会继续有效?'从2018年7月16日开始?根据此处的Google API文档https://developers.google.com/maps/documentation/geocoding/intro#GeocodingResponses,执行地理编码的正确方法是使用以下格式:
我尝试过使用建议的格式(创建项目,启用结算,启用Places和Maps API,创建API密钥,为密钥添加安全性,以便只有我的应用可以访问密钥)但是当我使用建议格式我收到错误,
此IP,网站或移动应用程序无权使用此API 键
在StackOverflow上阅读其他问题,我找到了以下建议,其中包括:
我尝试了所有这些,除了1,没有人工作。关于解决方案#1,根据文档,API需要API密钥,因此我无法理解为什么服务器密钥可以工作。
解决方案2存在风险,解决方案3不确定它是否会继续使用定价更改而解决方案4也不起作用(我等了几个小时没有成功)。
我甚至创建了一个新的API KEY,并且没有对它添加任何限制,我得到了超出限制的错误。
任何人都可以提供任何帮助吗?
答案 0 :(得分:0)
如果您只能使用Google地理编码API,则可以使用代理服务(解决方案#1)。
您的应用被拒绝,因为谷歌无法通过API密钥知道哪个应用正在发出请求。如果您查看可用的API,有人会说"对于Android"和"对于iOS和#34;,这些是你可以限制和原生使用的。
使用代理将起作用(您认为它不会错误)因为您可以将API密钥限制为服务的IP,然后需要您的应用授权才能使用代理端点。这将保护您的API密钥免遭被盗和滥用。
答案 1 :(得分:0)
根据您上面的评论,最快的方法是使用Geocoder反转地址编码地址:
var results = response
.GroupBy(row => row.Name)
.SelectMany(g => g
.OrderByDescending(row => row.Id)
.Take(1));