46

我对地理编码器从地址获取纬度和经度有一点问题:

这是我的代码:

for (Garage g : XMLGarage) {
List<Address> address;
address = coder.getFromLocationName(
g.getAddress(), 5);
if (address != null) {
Address location = address.get(0);  
g.setLatitude(location.getLatitude());
g.setLongitude(location.getLongitude());
...

错误是:

08-18 14:28:56.026: WARN/System.err(359): java.io.IOException: Service not Available
08-18 14:28:56.026: WARN/System.err(359):     at 
android.location.Geocoder.getFromLocationName(Geocoder.java:178)
08-18 14:28:56.026: WARN/System.err(359):     at 
com.amt.android.garage.Garage.postData(Garage.java:269)
08-18 14:28:56.026: WARN/System.err(359):     at
com.amt.android.garage.GarageForm$2.onClick(GarageForm.java:86)
08-18 14:28:56.026: WARN/System.err(359):     at  
android.view.View.performClick(View.java:2485)
08-18 14:28:56.026: WARN/System.err(359):     at
android.view.View$PerformClick.run(View.java:9080)
08-18 14:28:56.036: WARN/System.err(359):     at  
android.os.Handler.handleCallback(Handler.java:587)
08-18 14:28:56.036: WARN/System.err(359):     at
android.os.Handler.dispatchMessage(Handler.java:92)
08-18 14:28:56.036: WARN/System.err(359):     at
android.os.Looper.loop(Looper.java:130)
08-18 14:28:56.036: WARN/System.err(359):     at 
android.app.ActivityThread.main(ActivityThread.java:3683)
08-18 14:28:56.036: WARN/System.err(359):     at
java.lang.reflect.Method.invokeNative(Native Method)
08-18 14:28:56.036: WARN/System.err(359):     at
java.lang.reflect.Method.invoke(Method.java:507)
08-18 14:28:56.036: WARN/System.err(359):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-18 14:28:56.046: WARN/System.err(359):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-18 14:28:56.046: WARN/System.err(359):     at dalvik.system.NativeStart.main(Native    
Method)
4

3 回答 3

100

最近 android 设备出现问题并且地理编码器无法正常工作: http ://code.google.com/p/android/issues/detail?id=38009

重新启动似乎可以解决问题

于 2012-12-13T09:31:41.457 回答
13

如果地理编码提供程序失败并且无法对您的位置进行地理编码,您偶尔会收到此错误。

请参阅这些相关帖子:

Geocoder.getFromLocation 抛出异常

Geocoder.getFromLocation 在 Android 模拟器上抛出 IOException

如果不是这种情况,请确保您在清单中具有 Internet 权限:

<uses-permission android:name="android.permission.INTERNET" />
于 2011-08-18T17:10:37.467 回答
0

先尝试更新位置。像下面

locationManager.requestLocationUpdates(bestProvider, 20000, 1, this);

参考这里

于 2013-01-31T01:00:55.447 回答