地理编码是地址信息和地理坐标之间的相互转换。可分为正地理编码(地址信息转换为地理坐标)和逆地理编码(地理坐标转换为地址信息)。
mcoder =geocoder.newinstance();
ongetgeocoderresultlistener listener =newongetgeocoderresultlistener(){@overridepublicvoidongetgeocoderesult(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;}}}......};
mcoder.setongetgeocoderesultlistener(listener);
//city 和 address是必填项mcoder.geocode(newgeocodeoption().city("北京").address("北京上地十街10号"));
mcoder.destroy();
逆地理编码服务通过地面某个地物的地理坐标值检索到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。通过丰富的标准地址库中的数据,帮助用户在进行移动端查询、商业分析、规划分析等领域创造无限价值。 推荐与定位服务配合使用,通过定位获得的地理坐标获取详细的地址信息。
逆地理编码示例如下:
mcoder =geocoder.newinstance();
ongetgeocoderresultlistener listener =newongetgeocoderresultlistener(){......@overridepublicvoidongetreversegeocoderesult(reversegeocoderesult reversegeocoderesult){if(reversegeocoderesult ==null|| reversegeocoderesult.error!=searchresult.errorno.no_error){//没有找到检索结果return;}else{//详细地址string address = reversegeocoderesult.getaddress();//行政区号int adcode = reversegeocoderesult.getcitycode();}}};
mcoder.setongetgeocoderesultlistener(this);
mcoder.reversegeocode(newreversegeocodeoption().location(point)// 设置是否返回新数据 默认值0不返回,1返回.newversion(1)// poi召回半径,允许设置区间为0-1000米,超过1000米按1000米召回。默认值为1000.radius(500));
mcoder.destroy();
自v4.5.2起,支持返回新版数据,由reversegeocodeoption类新增的int类型mlastestadmin变量来标示,默认为0表示不返回新版数据,1为返回新版数据。可以通过reversegeocodeoption类newversion(int)字段来设置。
当设置reversegeocodeoption类mlastestadmin变量为1,即返回新版数据时,获取行政区号需要使用getadcode方法获取。
注:新版数据中返回的adcode与旧版数据中返回的citycode为不同字段,请区别使用。
使用逆地理编码检索时,可以通过检索结果reversegeocoderesult类getpoilist方法获取传入位置周围的poi信息。
上一篇
下一篇
本篇文章对您是否有帮助?