BaiduMap SDK-DistrictSearch(行政区域搜索)

目录

 

1.DistrictSearch

2. 相关类

2.1 DistrictSearch(行政检索)

2.2 DistrictSearchOption(行政检索参数)

2.3 DistrictResult(检索结果)

2.4 onGetDistrictResult(行政检索监听)

3 行政区域案例


1.DistrictSearch

DistrictSearch是行政区域检索接口,通过DistrictSearchOption参数类获取区域;可以通过此类来绘制区域的图层显示;

2. 相关类

2.1 DistrictSearch(行政检索)

DistrictSearch是行政区域检索接口,包括了newInstance(行政区域构造)searchDistrict(行政区域搜索)setOnDistrictSearchListener(设置检索监听)destroy(释放资源)函数

扫描二维码关注公众号,回复: 2416854 查看本文章

2.2 DistrictSearchOption(行政检索参数)

通过city(cityName)districtName(districtName)设置城市和区域参数;

2.3 DistrictResult(检索结果)

行政区域检索返回结果;

int

describeContents() 

LatLng

getCenterPt()

获取行政区域中心点

int

getCityCode()

获取行政区域编码

java.lang.String

getCityName()

获取行政区域名称

java.util.List<java.util.List<LatLng>>

getPolylines()

获取行政区域边界坐标点

void

setCenterPt(LatLng centerPt) 

void

setCityCode(int cityCode) 

void

setCityName(java.lang.String cityName) 

void

setPolylines(java.util.List<java.util.List<LatLng>> polylines) 

void

writeToParcel(Parcel dest, int flags) 

2.4 onGetDistrictResult(行政检索监听)

重写onGetDistrictResult()回调函数,获取检索的结果;

void onGetDistrictResult(DistrictResult result)

行政区域检索结果回调
参数:

3 行政区域案例

1. 创建DistrictSearch对象

districtSearch = DistrictSearch.newInstance();

2. 添加监听

districtSearch.setOnDistrictSearchListener(new MyDistricSearchListener());

3. 创建行政检索参数DistrictSearchOption对象

DistrictSearchOption option = new DistrictSearchOption();
option.cityName(etxt_city.getText().toString());
option.districtName(etxt_district.getText().toString());
districtSearch.searchDistrict(option);

4. 开始搜索

districtSearch.searchDistrict(option);

5. 自定义检索监听

private class MyDistricSearchListener implements OnGetDistricSearchResultListener {
    @Override
    public void onGetDistrictResult(DistrictResult districtResult) {
        if (districtResult == null || districtResult.error != SearchResult.ERRORNO.NO_ERROR) {
            showToast("未找到结果");
        }
        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> LatLngList : polyLines) {
               //绘制区域边界
                OverlayOptions polylineOption = new PolylineOptions().width(10).points(LatLngList).
                                                dottedLine(true).color(0xAA00FF00);
                baiduMap.addOverlay(polylineOption);
                //绘制区域填充
                OverlayOptions polygonOption = new PolygonOptions().points(LatLngList)..fillColor(0xAAFFFF00)
                                               stroke(new Stroke(5, 0xAA00FF88));
                baiduMap.addOverlay(polygonOption);

                //设置地图的显示范围
                for (LatLng latLng : LatLngList) {
                    builder.include(latLng);
                }
                baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLngBounds(builder.build()));
            }
        }
    }
}

6. 销毁对象

districtSearch.destroy();

 
 

猜你喜欢

转载自blog.csdn.net/niuba123456/article/details/81165311
今日推荐