android百度地图开发V4.5最新版(6)---行政区域查找

我们接着以前的继续进行相关开发,今天我们介绍怎么进行行政区域查找。废话不多说,还是老样子直接上代码

1;新建xml文件,布局如下:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="50dip"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="城市:" >
    </TextView>

    <EditText
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="北京" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="区:" >
    </TextView>

    <EditText
        android:id="@+id/district"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="海淀" />
    <Button
        android:id="@+id/districSearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.1"
        android:padding="10dip"
        android:text="开始" />
</LinearLayout>

<com.baidu.mapapi.map.MapView
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />
2:创建java文件,代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    SDKInitializer.initialize(getApplicationContext());
    setContentView(R.layout.activity_district_search_demo);
    mDistrictSearch = DistrictSearch.newInstance();
    mDistrictSearch.setOnDistrictSearchListener(this);
    
    mMapView = (MapView) findViewById(R.id.map);
    mBaiduMap = mMapView.getMap();
    mCity = (EditText) findViewById(R.id.city);
    mDistrict = (EditText) findViewById(R.id.district);
    mSearchButton = (Button) findViewById(R.id.districSearch);
    mSearchButton.setOnClickListener(this);
}

@Override
public void onGetDistrictResult(DistrictResult districtResult) {
    mBaiduMap.clear();
    if (districtResult == null) {
        return;
    }
    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);
            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()));
        
    }
}

@Override
protected void onPause() {
    super.onPause();
}

@Override
protected void onResume() {
    super.onResume();
}

@Override
protected void onDestroy() {
    mDistrictSearch.destroy();
    super.onDestroy();
}

@Override
public void onClick(View v) {
    String city = "";
    String district = "";
    if (mCity.getText() != null && !"".equals(mCity.getText()) ) {
        city = mCity.getText().toString();
    }
    if (mDistrict.getText() != null && !"".equals(mDistrict.getText()) ) {
        district = mDistrict.getText().toString();
    }
    mDistrictSearch.searchDistrict(new DistrictSearchOption().cityName(city).districtName(district));
}
3:配置activity到fest文件中。

这样我们就大工告成。


项目中overlay工具包下载请见:

百度地图工具包overlayutils,百度地图开发必备工具包


猜你喜欢

转载自blog.csdn.net/u012115730/article/details/78793032