开发中经常会遇到判断地址输入是否正确,如果项目中集成了高德地图的SDK,那么为什么不用ta?
1、声明控件:
// 地理编码
private static GeocodeSearch geocoderSearch;
2、在onCreate中创建实例:
geocoderSearch = new GeocodeSearch(context);
geocoderSearch.setOnGeocodeSearchListener(geoLis);
3、创建方法,用来响应地理编码:
/**
* 响应地理编码(在拿到城市路径之后调用)
*/
public void getLatlon(String address) {
// 第一个参数表示地址,第二个参数表示查询城市,中文或者中文全拼,citycode、adcode,
GeocodeQuery query = new GeocodeQuery(address, "");
// 设置同步地理编码请求
geocoderSearch.getFromLocationNameAsyn(query);
}
4、对第二部设置的响应地理编码的监听做处理:
/**
* 编码异步处理
*/
private OnGeocodeSearchListener geoLis = new OnGeocodeSearchListener() {
/**
* 逆地理编码回调
*/
@Override
public void onRegeocodeSearched(RegeocodeResult arg0, int arg1) {
}
/**
* 地理编码查询回调
*/
@Override
public void onGeocodeSearched(GeocodeResult result, int rCode) {
if (rCode == 1000) {
if (result != null && result.getGeocodeAddressList() != null
&& result.getGeocodeAddressList().size() > 0) {
//地址输入正确,在这里调用输入正确地址后的操作
//这里也可以获取到经纬度坐标,具体代码如下
//GeocodeAddress addressCode = result.getGeocodeAddressList().get(0);
//纬度:addressCode.getLatLonPoint().getLatitude()
//经度:addressCode.getLatLonPoint().getLongitude()
} else {
ToastUtil.show("请输入正确的家庭地址");
return;
}
}
}
};