1.效果如下
代码下载(https://download.csdn.net/download/qq_38382267/10442801)
2.百度地图申请开发密钥请看上一篇基础运行案例
https://blog.csdn.net/qq_38382267/article/details/80483182
3.案例布局如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioGroup android:id="@+id/RadioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:orientation="horizontal" > <RadioButton android:id="@+id/normal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" android:onClick="setMapMode" android:text="普通图" /> <RadioButton android:id="@+id/statellite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="setMapMode" android:text="卫星图" /> </RadioGroup> <CheckBox android:id="@+id/traffice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:onClick="setTraffic" android:text="路况图" /> <CheckBox android:id="@+id/baiduHeatMap" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:onClick="setBaiduHeatMap" android:text="百度城市热力图" /> </LinearLayout> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
4.Java代码如下所示
package ylf.com.baidumap; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; import android.widget.RadioButton; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; /** * 演示地图图层显示的控制方法 */ public class LayersDemo extends Activity { /** * MapView 是地图主控件 */ private MapView mMapView; private BaiduMap mBaiduMap; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_layers); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); } /** * 设置底图显示模式 * * @param view */ public void setMapMode(View view) { boolean checked = ((RadioButton) view).isChecked(); switch (view.getId()) { case R.id.normal: if (checked) { mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); } break; case R.id.statellite: if (checked) { mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); } break; default: break; } } /** * 设置是否显示交通图 * * @param view */ public void setTraffic(View view) { mBaiduMap.setTrafficEnabled(((CheckBox) view).isChecked()); } /** * 设置是否显示百度热力图 * * @param view */ public void setBaiduHeatMap(View view) { mBaiduMap.setBaiduHeatMapEnabled(((CheckBox) view).isChecked()); } @Override protected void onPause() { // MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause() mMapView.onPause(); super.onPause(); } @Override protected void onResume() { // MapView的生命周期与Activity同步,当activity恢复时需调用MapView.onResume() mMapView.onResume(); super.onResume(); } @Override protected void onDestroy() { // MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy() mMapView.onDestroy(); super.onDestroy(); } }