一般app很少看到有在百度地图上显示行政边界的,本想偷懒一回,拿个现成的,但百度好长时间都没有。还是耐心的去看类参考吧,后来发现挺简单的,所以记录一下方便以后直接拿来用了。
其实就是获取点位生成图层添加到baidumap里面去。
private void addBundary(String districtName) {
DistrictSearchOption option = new DistrictSearchOption();
searchOption = option.districtName(distrName).cityName("上海市");
DistrictSearch search = DistrictSearch.newInstance();
//获取到行政边界点
search.searchDistrict(searchOption);
search.setOnDistrictSearchListener(new OnGetDistricSearchResultListener() {
@Override
public void onGetDistrictResult(DistrictResult districtResult) {
List<List<LatLng>> latLngs = districtResult.getPolylines();
setLocation(districtResult.getCenterPt());
if (latLngs != null && !latLngs.isEmpty()) {
polygonOptions = new PolygonOptions().points(latLngs.get(0)).fillColor(Color.parseColor("#00000000")).stroke(new Stroke(5, Color.parseColor("#AD8764")));
baiduMap.addOverlay(polygonOptions);
}
}
});
}
//设定到行政中心中心点坐标
private void setLocation(LatLng latLng) {
//定义地图状态
MapStatus mMapStatus = new MapStatus.Builder().target(latLng).build();
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改变地图状态
baiduMap.setMapStatus(mMapStatusUpdate);
}