百度地图定位后,想要获取到定位坐标的位置名称怎么办呢,在百度地图的sdk上,没有发现相关api,经过这两天的研究,发现有两种解决方案。
第一种方案是采用谷歌的geocode类 不过目前发现有一个奇怪的现象,在采用流量的情况下,部分机型无法正常获取到地理位置信息,于是我在百度地图api中找到了第二种方案
GeoPoint 参数采用latitudeE6和longitudeE6初始化
private String getLocationAddress(GeoPoint point) {
String add = "";
Geocoder geoCoder = new Geocoder(getBaseContext()
// , Locale.getDefault()
);
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6, point.getLongitudeE6() / 1E6,
1);
for(Address adds: addresses)
{
int maxLine = adds.getMaxAddressLineIndex();
String addstr= "";
for(int i=0;i<maxLine;i++)
{
addstr+=i+"==>>"+adds.getAddressLine(i)+";";
}
Log.e("err", "+==>>"+addstr);
}
Address address = addresses.get(0);
int maxLine = address.getMaxAddressLineIndex();
if (maxLine >= 2) {
add = address.getAddressLine(1) + address.getAddressLine(2);
} else {
add = address.getAddressLine(1);
}
} catch (Exception e) {
add = "";
e.printStackTrace();
}
return add;
}
第二种方案是采用百度地图的webapi的方式获取位置信息
http://api.map.baidu.com/geocoder/v2/?output=json&ak=自行申请key&pois=1&location=30.568225,104.065123
这种方式获取的位置的json,需要进行解析,但适用机型跟多