何为地理编码?何为逆地理编码?
一共就发现了两种实现方式,个人倾向于使用jar包的,反正jar包都导进来了,那么大不用白不用。
地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息。
逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息。
然后鄙视一下百度地图api文档的作者,文档的功能介绍太少了吧,而且这个功能都没说,为什么web的api功能介绍那么多。。。
这个可以选择使用web的接口获取结果也可以使用百度jar里的方法获取。
web:这里可以点击 -->web的链接。
jar:1.下载百度的jar包,需要包含搜索那块功能。
2.搜索的类叫GeoCoder 路径是com.baidu.mapapi.search.geocode.GeoCoder;
3.实现代码:
GCSearch.geocode(new GeoCodeOption().city(
tvCityAddress.getText().toString()).address(searchEntry.getAddress()));
这个是地理解析,就是搜索地址得到经纬度。
ReverseGeoCodeOption reverseGeoCodeOption = new ReverseGeoCodeOption();
reverseGeoCodeOption.location(new LatLng(lat, lng));
GCSearch.reverseGeoCode(reverseGeoCodeOption);
这个是逆地理解析,就是通过经纬度获取地址详情。
GCSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { //通过文字地址获取到的坐标回调
LatLng location = geoCodeResult.getLocation();
if (location == null) return;
setMap(location.latitude, location.longitude);
}
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) { //通过坐标获取到地址信息的回调
tvAddressAddress.setText(reverseGeoCodeResult.getAddress());
}
});
搜索的结果。
一共就发现了两种实现方式,个人倾向于使用jar包的,反正jar包都导进来了,那么大不用白不用。