android avd2.2获取街道信息:Geocoder, “the service is not available” && Geocoder返回List为null,得不到街道信息
2011-03-17 10:20
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.
However this solution is extremely nasty and coupled..
PS. you should add
to AndroidManifest.xml or application could not find GeoPoint class.
顺便推荐篇android地图开发入门文章:
http://mobiforge.com/developing/story/using-google-maps-android
这里说到了要有个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)); }
However this solution is extremely nasty and coupled..
PS. you should add
<uses-library android:name="com.google.android.maps"></uses-library>
to AndroidManifest.xml or application could not find GeoPoint class.
顺便推荐篇android地图开发入门文章:
http://mobiforge.com/developing/story/using-google-maps-android
相关文章推荐
- android avd2.2获取街道信息:Geocoder, “the service is not available” && Geocoder返回List为null,得不到街道信息
- Geocoder, “the service is not available” && Geocoder返回List为null
- 关于 Android中googleMaps的Geocoder, “the service is not available”解决办法
- Error: Target id 'android--1' is not valid. Use 'android.bat list targets' to get the target ids.
- Ubutun 编译完sdk 出现Target id is not valid. Use 'android list targets' to get the target ids.
- Android打开GPS导航并获取位置信息返回null解决方案
- Service部署到服务器后出现"The test form is only available for requests from the local machine"解决方法
- SharePoint 2016 配置向导报错 - The 'ListInternal' attribute is not allowed
- [SharePoint知识库] 导出List为Template时,提示 The specified gallery is not available for this Web site collection.
- 获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint:
- error target id is not valid use android list targets to get the target ids
- Mongodb无法启动:The default storage engine 'wiredTiger' is not available with this build of mongod.
- How to solve "The installation source for this product is not available" problem?
- Service部署到服务器后出现"The test form is only available for requests from the local machine"解决方法
- android错误提醒之:Custom view * is not using the 2- or&nb(自定义控件)
- the type List is not generic; it cannot be parameterized with arguments<T>解决办法
- apt-get couldn't be verified because the public key is not available: NO_PUBKEY XXX
- The Managed Metadata Service or Connection is currently not available
- Android错误:方法setListAdapter(ArrayAdapter<String>) is undefined for the type String
- "The requested resource (... processLogin.action) is not available"的问题所在及解决办法