我们接着以前的继续进行相关开发,今天我们介绍怎么进行行政区域查找。废话不多说,还是老样子直接上代码
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工具包下载请见: