android地图sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
检索行政区边界数据
下载开发文档

自v3.7.0起,支持行政区边界数据检索。根据省、市、县(区)级行政区划名称,返回所查询行政区划边界的详细信息。

行政区边界数据检索
1. 创建行政区边界数据检索实例
mdistrictsearch =districtsearch.newinstance();
2. 创建行政区边界数据检索监听器
ongetdistricsearchresultlistener listener =newongetdistricsearchresultlistener(){
@override
publicvoidongetdistrictresult(districtresult districtresult){
if(null!= districtresult && districtresult.error!=searchresult.errorno.no_error){
//对检索所得行政区划边界数据进行处理
}
}
};
3. 设置行政区边界数据检索监听器
mdistrictsearch.setondistrictsearchlistener(listener);
4. 设置districtsearchoption,发起检索
mdistrictsearch.searchdistrict(newdistrictsearchoption()
.cityname("北京市")
.districtname("海淀区"));

注:其中cityname为必填,districtname为选填。

5. 释放检索实例
mdistrictsearch.destroy();

对于返回结果的展示,可以通过使用已开源的覆盖物类结合边界数据绘制折线。示例如下:

@override
publicvoidongetdistrictresult(districtresult districtresult){
if(null!= districtresult && districtresult.error!=searchresult.errorno.no_error){
mbaidumap.clear();
//获取边界坐标点,并展示
if(districtresult.error==searchresult.errorno.no_error){
list<list<latlng>> polylines = districtresult.getpolylines();
if(polylines ==null){
return;
}
latlngbounds.builder builder =newlatlngbounds.builder();
for(list<latlng> polyline : polylines){
overlayoptions oopolyline11 =newpolylineoptions().width(10)
.points(polyline).dottedline(true).color(color.blue);
mbaidumap.addoverlay(oopolyline11);
overlayoptions oopolygon =newpolygonoptions().points(polyline)
.stroke(newstroke(5,0xaa00ff88)).fillcolor(0xaaffff00);
mbaidumap.addoverlay(oopolygon);
for(latlng latlng : polyline){
builder.include(latlng);
}
}
mbaidumap.setmapstatus(mapstatusupdatefactory
.newlatlngbounds(builder.build()));
}
}
}

注意:在上面的示例代码中使用for循环绘制边界点时,若边界点数量很大,则建议开启子线程进行绘制,以免anr。 效果如图:

上一篇

地理编码

下一篇

室内poi检索

本篇文章对您是否有帮助?

网站地图