浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

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

行政区边界数据检索
1创建行政区边界数据检索实例
mDistrictSearch = DistrictSearch.newInstance();
2创建行政区边界数据检索监听器
OnGetDistricSearchResultListener listener = new OnGetDistricSearchResultListener() {
    @Override
    public void onGetDistrictResult(DistrictResult districtResult) {
        if (null != districtResult && districtResult.error != SearchResult.ERRORNO.NO_ERROR) {
            //对检索所得行政区划边界数据进行处理
        }
    }
};
3设置行政区边界数据检索监听器
mDistrictSearch.setOnDistrictSearchListener(listener);
4设置DistrictSearchOption,发起检索
mDistrictSearch.searchDistrict(new DistrictSearchOption()
        .cityName("北京市")
        .districtName("海淀区"));

注:其中cityName为必填,districtName为选填。

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

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

@Override
public void onGetDistrictResult(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 = new LatLngBounds.Builder();
            for (List<LatLng> polyline : polyLines) {
                OverlayOptions ooPolyline11 = new PolylineOptions().width(10)
                        .points(polyline).dottedLine(true).color(Color.BLUE);
                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()));

        }
    }
}

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

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消