我正在使用Geocoder
找到我的位置,其中包含地址,邮政编码和国家/地区值。
但是getFromLocation(latitude,longitude,number)
返回null,即使我使用已知的位置属性(纬度:40,645081经度:22,988892)。
我正在使用Eclipse在AVD(API级别7)上测试我的应用程序。
提前致谢。
以下是使用getFromLocation
函数的片段。
private void updateWithNewLocation(Location location){
String latLongString;
TextView myLocationText;
myLocationText = (TextView)findViewById(R.id.myLocationText);
String addressString = "No address found";
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "Lat:" + lat + "\nLong:" + lng;
//double latitude = 73.147536;
//double longitude = 0.510638;
Geocoder gc = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = gc.getFromLocation(lat, lng, 1);
Log.v("TRY_BODY", "All addresses are: " + addresses);
StringBuilder sb = new StringBuilder();
if (addresses.size() > 0) {
Log.v("IF_BODY", "All addresses are: " + addresses);
Address address = addresses.get(0);
for (int i = 0; i < address.getMaxAddressLineIndex(); i++){
sb.append(address.getAddressLine(i)).append("\n");
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
}
addressString = sb.toString();
}
} catch (IOException e) {}
}
else {
latLongString = "No location found";
}
myLocationText.setText("Current Position:\n"+latLongString + "\n" + addressString);
}
答案 0 :(得分:0)
它很常见,有时谷歌服务器不返回任何地址,所以你应该尝试agian,它可能是任何服务器忙,或其他一些, 您可以在任何带有循环的线程中运行此代码,如果地址成功,您可以停止循环,它将结束该线程。