我正在制作一个 android 应用程序,它根据用户的纬度和经度位置确定用户的位置。所以我正在使用Google Maps reverse geocoder
. 但问题是谷歌表示每天只能进行 2500 次 API 调用。但我希望我的用户数量超过 2500。那么有没有一种替代方法Google Maps reverse geocoder
可以让用户每天进行无限制的 API 调用?
问问题
4030 次
3 回答
4
数字 2500 是每个用户(我认为每个 IP)。如果您不想执行自动查询(违反政策),2500 对于单个用户来说应该绰绰有余。
“由于地理编码限制是针对每个用户会话的,因此随着用户群的增长,您的应用程序不会达到全局限制。”
“每个 IP 地址的 2,500 个请求限制。”
从
https://developers.google.com/maps/articles/geocodestrat#client
于 2013-05-12T09:07:38.927 回答
3
您可以通过 Google API 使用,例如使用参数插入经度和纬度,并将请求发送到服务器和服务器,并提供地址响应。
public static String getAddressUrl(Context context) {
String responseText = null;
// String latitude = "38.89";
// String longitude = "-77.03";
String googleurl = "http://maps.google.com/maps/geo?";
Log.v(TAG , "Latitude is: " + latitude + "Longitude is:" + longitude);
StringBuilder sbuilder = new StringBuilder();
sbuilder.append(googleurl);
sbuilder.append("q = " + latitude + "," + longitude);
sbuilder.append("&output = responseText&sensor = true");
String url = sbuilder.toString();
Log.v(TAG, "url is: " + url);
try {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse httpresponse = httpclient.execute(httppost);
HttpEntity httpentity = httpresponse.getEntity();
InputStream is = httpentity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
responseText = sb.toString();
}
catch(ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return responseText;
}
于 2013-05-12T07:50:09.680 回答