0

可能重复:
在 Android 中使用触摸事件进行反向地理编码

我想将地图的纬度和经度更改为位置地址,但我无法得到结果,它会抛出异常以捕获部分并打印捕获部分的部分。此代码是从几个教程中获得的,其中 sereenshot 显示了结果,但我无法得到它。它的原因可能是什么,或者在 api 2.2 中,它是无效的。

这是代码

@覆盖 public boolean onTouchEvent(MotionEvent 事件,MapView mapView) { //---当用户抬起手指时--- if (event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels( (int) event.getX(), (int) event.getY()); Toast.makeText(getBaseContext(), p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() /1E6 , Toast.LENGTH_SHORT).show();

Geocoder geoCoder = new Geocoder( getBaseContext(), Locale.getDefault()); try { List<Address> addresses = geoCoder.getFromLocation( p.getLatitudeE6()/1E6 , p.getLongitudeE6()/1E6, 1); String add = ""; if (addresses.size() > 0) { for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); i++) add += addresses.get(0).getAddressLine(i) + "\n"; } Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show(); } catch (IOException e) { Toast.makeText(getBaseContext(), "uffff.... exception", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } return true; } else return false; }

请帮助我完成它,我已经在它下面很长时间了。谢谢你的提前

4

0 回答 0