我是利用经纬度来解析得到地址的,但是好奇怪哦,
他这个解析不稳定,有时候能返回出地址,有时候却没有。
求高手解决,
我的代码是这样的。
public String getAddress(double lat, double lng) {
String myAddress = "";
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(mContext, Locale.CHINA);
try {
List<Address> add = gc.getFromLocation(lat / 1E6, lng / 1E6, 5);
StringBuilder bb = new StringBuilder();
if (add.size() > 0) {
Address ad = add.get(0);
bb.append(ad.getAddressLine(0));
bb.append(ad.getAddressLine(1));
bb.append(ad.getAddressLine(2));
sb.append(bb);
}
} catch (Exception e) {
e.printStackTrace();
}
myAddress = sb.toString(); return myAddress;
}
他这个解析不稳定,有时候能返回出地址,有时候却没有。
求高手解决,
我的代码是这样的。
public String getAddress(double lat, double lng) {
String myAddress = "";
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(mContext, Locale.CHINA);
try {
List<Address> add = gc.getFromLocation(lat / 1E6, lng / 1E6, 5);
StringBuilder bb = new StringBuilder();
if (add.size() > 0) {
Address ad = add.get(0);
bb.append(ad.getAddressLine(0));
bb.append(ad.getAddressLine(1));
bb.append(ad.getAddressLine(2));
sb.append(bb);
}
} catch (Exception e) {
e.printStackTrace();
}
myAddress = sb.toString(); return myAddress;
}
问题是有时候有值啊。我也不知道问题出在哪里,我调用的的语句是这样的
String myAddress = addressUtils.getAddress( (double)( gp.getLatitudeE6() ),(double)( gp.getLongitudeE6() ) );
问题是有时候有值啊。我也不知道问题出在哪里,我调用的的语句是这样的
String myAddress = addressUtils.getAddress( (double)( gp.getLatitudeE6() ),(double)( gp.getLongitudeE6() ) );
String myAddress = "";
System.out.println("lat="+lat+",lng="+lng);
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(mContext, Locale.CHINA);
try {
List<Address> add = gc.getFromLocation(lat / 1E6, lng / 1E6, 5);
System.out.println("add:"+add);
if ("".equals(add)) {
System.out.println("---!");
add = AddressUtils.getaddressLocation(lat / 1E6, lng / 1E6, 3);
} else {
;
} StringBuilder bb = new StringBuilder();
if (add.size() > 0) {
Address ad = add.get(0);
bb.append(ad.getAddressLine(0));
bb.append(ad.getAddressLine(1));
bb.append(ad.getAddressLine(2));
sb.append(bb);
}
} catch (Exception e) {
e.printStackTrace();
}
myAddress = sb.toString(); return myAddress;
}
在这里调试,他只运行到了第一个输出语句,就是指打印出来 lat 跟 lng 的值,下面add的值没有打印。