百度地圖定位後,想要獲取到定位座標的位置名稱怎麼辦呢,在百度地圖的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,需要進行解析,但適用機型跟多