Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道)
2018-01-27 01:35
696 查看
Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道)
可以在非地图视图下直接获取,只要传入当前位置的经纬度 当然也可以在地图模式下获取详细信息在非第三方地图集成下(系统自带功能)获取当前位置的经纬度,参考:
http://blog.csdn.net/weixin_37577039/article/details/79178018
但是经过测试,发现这种方式获取的地理位置描述不够准确 因此还是建议通过高德地图方式进行位置获取
在高德地图集成下获取当前位置,参考:http://blog.csdn.net/weixin_37577039/article/details/79381762
获取逆地址编码
// 声明 GeocodeSearch geocoderSearch;
private void setCurrentLocationDetails(){ // 地址逆解析 geocoderSearch = new GeocodeSearch(getApplicationContext()); geocoderSearch.setOnGeocodeSearchListener(this); // 第一个参数表示一个Latlng(经纬度),第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 25, GeocodeSearch.AMAP); geocoderSearch.getFromLocationAsyn(query); }
注意这里的latLonPoint不能是LatLng类型的
要为LatLonPoint类型的
定位回调监听器中调用setCurrentLocationDetails:
/** * 定位回调监听器 */ public AMapLocationListener mLocationListener = new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation amapLocation) { if (!IsGpsWork.isGpsEnabled(getApplicationContext())) { Toast toast = Toast.makeText(getApplicationContext(), getString(R.string.hasNotOpenGps), Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else { if (amapLocation != null) { if (amapLocation.getErrorCode() == 0) { //定位成功回调信息,设置相关消息 amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表 double currentLat = amapLocation.getLatitude();//获取纬度 double currentLon = amapLocation.getLongitude();//获取经度 latLonPoint = new LatLonPoint(currentLat, currentLon); // latlng形式的 /*currentLatLng = new LatLng(currentLat, currentLon);*/ //latlng形式的 Log.i("currentLocation", "currentLat : " a790 + currentLat + " currentLon : " + currentLon); amapLocation.getAccuracy();//获取精度信息 setCurrentLocationDetails(); // 设置当前位置具体描述 } else { //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。 Log.e("AmapError", "location Error, ErrCode:" + amapLocation.getErrorCode() + ", errInfo:" + amapLocation.getErrorInfo()); } } } } };
3 获取回传数据
当然前提是 类要
implements GeocodeSearch.OnGeocodeSearchListener
/** * 获取回调的逆地址内容 */ @Override public void onRegeocodeSearched(RegeocodeResult result, int rCode) { String formatAddress = result.getRegeocodeAddress().getFormatAddress(); Log.e("formatAddress", "formatAddress:"+formatAddress); Log.e("formatAddress", "rCode:"+rCode); } @Override public void onGeocodeSearched(GeocodeResult result, int rCode) { }
输出结果
返回结果成功或者失败的响应码。1000为成功,其他为失败
IsGpsWork类如下,用于检查GPS是否开启
public class IsGpsWork { //判断GPS是否开启 public static boolean isGpsEnabled(Context context) { LocationManager locationManager = (LocationManager) context .getSystemService(Context.LOCATION_SERVICE); // 判断GPS模块是否开启 return locationManager != null && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); } }
相关文章推荐
- iOS开发——定位获取经纬度坐标,并反编码获得地理位置信息(具体地址,国家、省、市等)
- Android高德地图设置中心点图标,通过逆地理编码实时获取中心点的经纬度和详细位置
- Android高德地图输入地址利用正地理编码获取经纬度
- php获取ios或android通过文件头(header)传过来的坐标,通过百度接口获取具体城市和地址,并存入到session中。
- Android根据经纬度获取地址
- Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法
- android中获取位置(二)--利用反向地址编码获取具体位置信息
- Google Maps API V3学习一(获取地图坐标与街道地址)
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- 高德地图实现地址检索获取结果列表和坐标
- Android根据已知的经纬度坐标获取当前位置
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- iOS之获取经纬度并通过反向地理编码获取详细地址
- Android GPS获得经纬度并得到该坐标精确地址
- android手机获取gps和基站的经纬度地址实现代码
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- android 百度地图定位获取经纬度已经拿经纬度得到地址信息
- android 通过经纬度获取地址信息