在我的应用程序中,我需要使用地理编码,但我不太清楚使用哪种方法。直到昨天我才将参数添加到网址maps.googleapis.com/maps/api/geocode/json?address=myparameter&sensor=false
,但Google阻止了我的请求一天,导致应用程序崩溃,因为它没有返回地理编码请求的任何结果。
现在我正在使用同样的Geocoder
类,并且我已经看到您可以创建和使用API密钥进行地理编码。
您建议使用哪种方法?除了请求的限制之外,这两种方法有什么区别?
答案 0 :(得分:2)
如果您需要在应用中使用地图,则应使用名为:Google Maps Android API v2的API。
如果您需要管理地理编码数据(地址为lat / lng或反之),请启用地理编码API并开始使用Geocoder类。
例如(lat / lng to address):
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
addresses = geocoder.getFromLocation(gps.getLatitude(), gps.getLongitude(), 1);
答案 1 :(得分:1)
Geocoder 是 Android 框架中的免费内置 API。地理编码 API 是付费的休息 API。 Geocoder 在内部使用不同的搜索堆栈,与 Geocoding rest API 相比,这会导致不同的结果。 Geocoding rest API 通常比 Geocoder 工作得更好,但有使用限制并且实现更大。
答案 2 :(得分:0)
免费API的用户有以下限制:
您可以在网络请求中包含API密钥,例如:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=API_KEY
不确定android Geocoder类,也许其他人可以帮助你解决这个问题。但我认为适用相同的限制。