我使用标记进行反向地理编码。因此,依赖于标记位置,它将获得经度和纬度,从而从地理编码器获取地址。 问题是,在标记处的某些位置,它会得到一个错误的地址,尽管地点可能是正确的,剩下的街道'等等是不正确的,有时它根本不显示地址,TextView保留其先前的输入。
下面是我的标记拖动列表:
public void onMarkerDragEnd(Marker marker) {
LatLng position = marker.getPosition();
Geocoder geocoder = new Geocoder(MainActivity.this);
TextView textView1 = (TextView)findViewById(R.id.textView1);
try
{
List<Address> addresses = geocoder.getFromLocation(position.latitude,position.longitude,0);
for(Address address : addresses)
{
if(address.getLocality()!=null)
{
SubStreetNumber = address.getSubThoroughfare ();
Street = address.getThoroughfare();
Area = address.getSubLocality ();
City = address.getLocality();
PostCode = address.getPostalCode();
break;
}
textView1.setText(SubStreetNumber + ", " + Street + ", " + City + ", " + PostCode);
}
}
catch(IOException ioException)
{
Log.e("MyApp","Exception",ioException);
}
}
答案 0 :(得分:1)
此代码行geocoder.getFromLocation(position.latitude,position.longitude,0);
它与你的代码无关,我也遇到过这种情况。在某些设备上它可以正常运行,有些则无效,有时它可以正常工作,有时它不会在它可以工作的设备上运行。
如果你发现你的logcat中会出现一条黄线,说明它无法连接到某个服务......