定义
地理编码指的是将地理信息转化成坐标关系的过程。分为正向的和反向的编码。正向的就是指将地址信息转成坐标点的过程。反地理编码就是将地理坐标转换成具体的地址信息,通过百度地图SDK,查询出坐标对应的物体所在的行政区划、街道等信息。
正向地理编码
创建地理编码检索实例
GeoCoder mSearch = null;
mSearch = GeoCoder.newInstance();
创建地理编码检索监听者
mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetGeoCodeResult(GeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(SearchStartActivity.this, "抱歉,未能找到结果", Toast.LENGTH_LONG)
.show();
return;
}
String strInfo = String.format("纬度:%f 经度:%f",
result.getLocation().latitude, result.getLocation().longitude);
Toast.makeText(SearchStartActivity.this, strInfo, Toast.LENGTH_LONG).show();
}
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
}
});
这里mSearch
直接设置了setOnGetGeoCodeResultListener()
,即地理编码检索监听者,用到的方法为onGetGeoCodeResult()
即得到正向地理编码结果。对获取的结果result
进行判断,若为null
,则返回提示,若不为null
,将经纬度信息展示出来。
发起地理编码检索
GeoCodeOption GeoOption =new GeoCodeOption().city("北京").address(place_start);
mSearch.geocode(GeoOption);
配置GeoCodeOption
对象,即对查询条件进行限定,在北京查找place_start
(即关键词),之后对地理编码检索实例mSearch设置GeoCodeOption
。
释放地理编码检索实例
mSearch.destroy();