更新时间:2020-06-23
地理编码是地址信息和地理坐标之间的相互转换。可分为正地理编码(地址信息转换为地理坐标)和逆地理编码(地理坐标转换为地址信息)。
地理编码(地址转坐标)
1创建地理编码检索实例
mCoder = GeoCoder.newInstance();
2创建地理编码检索监听器
OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() { @Override public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { if (null != geoCodeResult && null != geoCodeResult.getLocation()) { if (geoCodeResult == null || geoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) { //没有检索到结果 return; } else { double latitude = geoCodeResult.getLocation().latitude; double longitude = geoCodeResult.getLocation().longitude; } } } ...... };
3设置地理编码检索监听器
mCoder.setOnGetGeoCodeResultListener(listener);
4设置GeoCodeOption,发起geoCode检索
//city 和 address是必填项 mCoder.geocode(new GeoCodeOption() .city("北京") .address("北京上地十街10号"));
5释放检索实例
mCoder.destroy();
逆地理编码(即坐标转地址)
逆地理编码服务通过地面某个地物的地理坐标值检索到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。通过丰富的标准地址库中的数据,帮助用户在进行移动端查询、商业分析、规划分析等领域创造无限价值。 推荐与定位服务配合使用,通过定位获得的地理坐标获取详细的地址信息。 逆地理编码示例如下:
1创建逆地理编码检索实例
mCoder = GeoCoder.newInstance();
2创建逆地理编码检索监听器
OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() { ...... @Override public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) { if (reverseGeoCodeResult == null || reverseGeoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) { //没有找到检索结果 return; } else { //详细地址 String address = reverseGeoCodeResult.getAddress(); //行政区号 int adCode = reverseGeoCodeResult. getCityCode(); } } };
3设置逆地理编码检索监听器
mSearch.setOnGetGeoCodeResultListener(this);
4发起逆地理编码检索
mCoder.reverseGeoCode(new ReverseGeoCodeOption() .location(point) // 设置是否返回新数据 默认值0不返回,1返回 .newVersion(1) // POI召回半径,允许设置区间为0-1000米,超过1000米按1000米召回。默认值为1000 .radius(500));
5释放检索实例
mCoder.destroy();
获取RGC新版数据
自V4.5.2起,支持返回新版数据,由ReverseGeoCodeOption类新增的int类型mLastestAdmin变量来标示,默认为0表示不返回新版数据,1为返回新版数据。可以通过ReverseGeoCodeOption类newVersion(int)字段来设置。
获取adcode数据
当设置ReverseGeoCodeOption类mLastestAdmin变量为1,即返回新版数据时,获取行政区号需要使用getAdcode方法获取。
注:新版数据中返回的adcode与旧版数据中返回的cityCode为不同字段,请区别使用。
使用RGC获取周边POI点
使用逆地理编码检索时,可以通过检索结果ReverseGeoCodeResult类getPoiList方法获取传入位置周围的POI信息。