百度地图API实现绘制中国各省、市、县行政区划

中国的效果图:

百度地图API实现绘制中国各省、市、县行政区划_第1张图片 全国的行政区划线

单个县市(贵州)效果图:

百度地图API实现绘制中国各省、市、县行政区划_第2张图片 贵州省行政区划线

步骤1:集成百度地图SDK,完成相关地图配置

步骤2:看百度开发文档-行政区边界数据检索

我把开发文档整理了一下,下面两个方法实现绘制行政区划线的方法

 public void setGuiZhouAreaMap(String cityname,String districtName){

        //创建行政区边界数据检索实例
        districtSearch = DistrictSearch.newInstance();
        //创建行政区边界数据检索监听器
        OnGetDistricSearchResultListener resultListener = new OnGetDistricSearchResultListener() {
            @Override
            public void onGetDistrictResult(DistrictResult districtResult) {
                Log.i("TAG","districtResult:"+districtResult.toString());
                new Runnable() {
                    @Override
                    public void run() {
                        onGetDistricResult(districtResult);
                    }
                }.run();

            }
        };


        //设置行政区边界数据检索监听器
        districtSearch.setOnDistrictSearchListener(resultListener);
        //设置行政区边界数据检索监听器
        districtSearch.searchDistrict(new DistrictSearchOption().cityName(cityname).districtName(cityname));
        this.districtSearch.destroy();

    }
    public void onGetDistricResult(DistrictResult districtResult){
        
        //districtResult.error != SearchResult.ERRORNO.NO_ERROR--->判断条件不成立
        if(null != districtResult ) {
            mapContorl.clear();
            List> polylines = districtResult.getPolylines();
            if(polylines==null){
                return;
            }
            LatLngBounds.Builder builder = new LatLngBounds.Builder();
            for (List polyline : polylines) {
              
                PolylineOptions ooPolyline11 = new PolylineOptions().width(10).points(polyline).dottedLine(true).color(Color.BLUE);
                mapContorl.addOverlay(ooPolyline11);
                PolygonOptions polygonOptions = new PolygonOptions().points(polyline).stroke(new Stroke(5, getResources().getColor(R.color.colorAccent))).fillColor(getResources().getColor(R.color.trancentColor));
                mapContorl.addOverlay(polygonOptions);
                for (LatLng latlng : polyline) {
                    builder.include(latlng);
                }
            }
            mapContorl.setMapStatus(MapStatusUpdateFactory.newLatLngBounds(builder.build()));
        }
            }


源码下载:https://download.csdn.net/download/louyxlovess/11375980

 

你可能感兴趣的:(android,开发,地图)