的方法Geocoder.getFromLocationName()
拋出異常Service not available
在Android 4.1中,即使GooglePlayServicesUtil.isGooglePlayServicesAvailable()
回報SUCCESS
和Geocoder.isPresent()
回報true
。
新的Google Maps v2 API中是否有地理編碼的官方示例?Geocoder.getFromLocationName()拋出「服務不可用」異常在Android 4與谷歌地圖V2
回答
Geocoder
與Google Maps Android API v2無關。
您可能希望直接使用Google Geocoding API而不是Geocoder
,這會給您提供有限的數據量,並可能受設備或Android版本特定問題的影響。
我不知道Geocoder與v2 API無關。 無論如何,我有沒有使用[this](https://developers.google.com/maps/documentation/geocoding/#GeocodingRequests)方法? – UmbySlipKnot
Geocoder類是否有任何改進? – UmbySlipKnot
即使使用Google Geocoding API,我也看到了問題,因此我必須實施包含Geocoder類的解決方案。有任何想法嗎? – UmbySlipKnot
試試這個.....
public JSONObject getLocationFormGoogle(String placesName) {
HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geocode/json?address=" +placesName+"&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) {
e.printStackTrace();
}
return jsonObject;
}
public LatLng getLatLng(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 LatLng(lat,lon);
}
LatLng Source =getLatLng(getLocationFormGoogle(placesName));
非常感謝,它非常完美。只是想現在,如果名稱有空格,它會崩潰。因此在執行避免崩潰的請求之前,編輯代碼以在'placesName'中用'%20'替換空白是個不錯的主意 – Youssef
- 1. 異常與谷歌地圖V2
- 2. 谷歌地圖API和geocoder.getFromLocationName
- 3. Android的谷歌地圖API V2 - 谷歌Play服務
- 4. geoCoder.getFromLocationName拋出IO異常在Froyo的
- 5. Android SDK谷歌服務地圖API V2給出錯誤
- 6. mClustermanager.additem()谷歌地圖拋出空指針異常android
- 7. 的Android谷歌地圖API V2在片段:NullPointerException異常錯誤
- 8. 谷歌地圖V2/Google Play服務NoClassDefFoundError
- 9. 谷歌地圖v2與v3
- 10. 谷歌地圖API v2。 android
- 11. Android谷歌地圖API v2
- 12. 谷歌地圖Android版V2
- 13. 谷歌地圖Android API v2
- 14. Android的谷歌地圖V2
- 15. Android谷歌地圖v2 maven
- 16. 谷歌地圖V2 Android
- 17. Android谷歌地圖v2
- 18. 顯示谷歌地圖V2
- 19. Android IllegalStateException與谷歌地圖api v2
- 20. 谷歌播放服務,使用更新的谷歌地圖V2
- 21. 谷歌地圖Android API v2拋出GooglePlayServicesNotAvailableException,過期,SupportMapFragment.getMap()返回null
- 22. Android谷歌地圖v2 - 支持片段null poiner異常
- 23. android - geocoder.getfromlocationname返回服務不可用
- 24. NullPointerException異常當試圖將標記在谷歌地圖V2
- 25. 谷歌地圖V2 IllegalStateException
- 26. 加載位置到谷歌地圖 - 谷歌地圖v2
- 27. 谷歌地圖錯誤 - Android應用|| V2
- 28. 谷歌地圖V2在Android模擬器
- 29. 谷歌地圖V2阿比
- 30. 谷歌地圖不顯示使用谷歌地圖v2
我發現這是一個解決辦法:重新啓動設備。但它不是一個解決方案... – UmbySlipKnot
我仍然在找到解決這個錯誤的方法。有任何想法嗎? – UmbySlipKnot
有什麼想法?似乎Geocoder無法在Android 4上運行,Google Maps V2 – UmbySlipKnot