Android【百度地图API,行政边界】关于百度地图显示行政边界问题

之前在做百度地图行政边界这一块的时候,折腾了比较久,网上的东西比较零散(可能是我技术太差,看不懂)然后折腾了好久才折腾好,自己记录一下!

第一步:Activity继承OnGetDistricSearchResultListener

mDistrictSearch = DistrictSearch.newInstance();
mDistrictSearch.setOnDistrictSearchListener(this);

//第一句我也不知道啥意思,反正就这样写了 = =第二个不用说了吧

mDistrictSearch.searchDistrict(new DistrictSearchOption().cityName("武汉市"));
 /**
     * 行政边界
     */
    @Override
    public void onGetDistrictResult(DistrictResult districtResult) {
        if (districtResult.error == SearchResult.ERRORNO.NO_ERROR){
            List<List<LatLng>> polyLines = districtResult.getPolylines();
            if (polyLines == null){
                return;
            }
            LatLngBounds.Builder builder = new LatLngBounds.Builder();
            for (List<LatLng> polyline : polyLines){
                ooPolyline11 = new PolylineOptions().width(10)
                        .points(polyline).dottedLine(true).color(color);
                mBaiduMap.addOverlay(ooPolyline11);
//                OverlayOptions ooPolygon = new PolygonOptions().points(polyline)
//                        .stroke(new Stroke(5, 0xAA00FF88)).fillColor(0xAAFFFF00);
//
//                mBaiduMap.addOverlay(ooPolygon);
                for (LatLng latLng : polyline){
                    builder.include(latLng);
                }
            }
            mBaiduMap.setMapStatus(MapStatusUpdateFactory
                    .newLatLngBounds(builder.build()));

        }
    }

这里就是代码了

代码很简单,但是这中间有几个坑,自己绕了好久

坑一:首次进入地图,行政边界不显示,第二次进来就会显示

这个坑主要是因为调用位置放的不对,我们必须放在地图初始化完成以后,就去调用,放在其他地方可能就会出现这种情况,经过调试发现,如果放在其他位置很可能出现districtResult返回值一直是空的情况!

坑二:行政边界在地图一刷新就会消失的问题

因为行政边界是在地图初始化的时候就画上去,如果地图刷新,清除了地图上的标记或者覆盖物,就会导致行政边界也消失,那么我们只需要在清除覆盖物的方法后面重新画行政边界就可以啦,加上这句就OK了mBaiduMap.addOverlay(ooPolyline11);

大概就这些了,方便自己下次查阅

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页