Geocoder, “the service is not available” && Geocoder返回List为null
2012-05-17 13:45
471 查看
”The Geocoder class requires a backend service that is not included in the core android framework. The Geocoder query methods will return an empty list if there no backend service in the platform.“
这里说到了要有个backend服务,但并有说此服务要怎么得到,坛子上有人觉得要用google map api.
在下面两个链接中,也有外国朋友提到用map api!
The documentation states : The Geocoder class requires a backend service that is not included in the core android framework, how/where can I obtain such a service?
It seems It's a bug in the emulator for 2.2 and there is a bug fix about it, for details
seehttp://code.google.com/p/android/issues/detail?id=8816
I have found a workaround to the issue. I used the standard google api:
http://code.google.com/apis/maps/documentation/geocoding/
I have created a method that received a String address like "220+victoria+square" and returns a JSONObject with the response of the HTTP Call
After executing this, another method converts that JSONObject into a GeoPoint.
这里说到了要有个backend服务,但并有说此服务要怎么得到,坛子上有人觉得要用google map api.
在下面两个链接中,也有外国朋友提到用map api!
The documentation states : The Geocoder class requires a backend service that is not included in the core android framework, how/where can I obtain such a service?
It seems It's a bug in the emulator for 2.2 and there is a bug fix about it, for details
seehttp://code.google.com/p/android/issues/detail?id=8816
I have found a workaround to the issue. I used the standard google api:
http://code.google.com/apis/maps/documentation/geocoding/
I have created a method that received a String address like "220+victoria+square" and returns a JSONObject with the response of the HTTP Call
public static JSONObject getLocationInfo(String address) { HttpGet httpGet = new HttpGet("http://maps.google. + "com/maps/api/geocode/json?address=" + address + "ka&sensor=false"); HttpClient client = new DefaultHttpClient(); HttpResponse response; StringBuilder stringBuilder = new StringBuilder(); try { response = client.execute(httpGet); HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); int b; while ((b = stream.read()) != -1) { stringBuilder.append((char) b); } } catch (ClientProtocolException e) { } catch (IOException e) { } JSONObject jsonObject = new JSONObject(); try { jsonObject = new JSONObject(stringBuilder.toString()); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonObject; }
After executing this, another method converts that JSONObject into a GeoPoint.
public static GeoPoint getGeoPoint(JSONObject jsonObject) { Double lon = new Double(0); Double lat = new Double(0); try { lon = ((JSONArray)jsonObject.get("results")).getJSONObject(0) .getJSONObject("geometry").getJSONObject("location") .getDouble("lng"); lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0) .getJSONObject("geometry").getJSONObject("location") .getDouble("lat"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6)); }
相关文章推荐
- android avd2.2获取街道信息:Geocoder, “the service is not available” && Geocoder返回List为null,得不到街道信息
- android avd2.2获取街道信息:Geocoder, “the service is not available” && Geocoder返回List为null,得不到街道信息
- 关于 Android中googleMaps的Geocoder, “the service is not available”解决办法
- The Managed Metadata Service or Connection is currently not available
- [SharePoint知识库] 导出List为Template时,提示 The specified gallery is not available for this Web site collection.
- The Managed Metadata Service or Connection is currently not available
- The requested resource (/lab-management/Project_Audit.Action) is not available.
- Service Broker message delivery is not enabled in this database. Use the ALTER DATABASE statement to
- How to solve "The installation source for this product is not available" problem?
- win10 vmware the vmware authorization service is not running无法运行
- tomcat与struts2配置,解决了The requested resource is not available问题
- The VMware Authorization Service is not running。虚拟机
- ORA-16525: the Data Guard broker is not yet available
- The VMware Authorization Service is not running
- Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify pr
- The Published Application Is Currently not available
- 前端到后端------HTTP Status 404 (The requested resource is not available)
- The requested resource is not available
- error target id is not valid use android list targets to get the target ids
- Service部署到服务器后出现"The test form is only available for requests from the local machine"解决方法