android 百度地图切换城市地图,android百度地图:卫星地图普通地图交通地图切换...

在基础地图模式上,增加了普通图和卫星图的切换,以及是否增加交通图的图层。

public class LayersDemo extends Activity {

/**

* MapView 是地图主控件

*/

private MapView mMapView = null;

/**

* 用MapController完成地图控制

*/

private MapController mMapController = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/**

* 使用地图sdk前需先初始化BMapManager.

* BMapManager是全局的,可为多个MapView共用,它需要地图模块创建前创建,

* 并在地图地图模块销毁后销毁,只要还有地图模块在使用,BMapManager就不应该销毁

*/

DemoApplication app = (DemoApplication)this.getApplication();

if (app.mBMapManager == null) {

app.mBMapManager = new BMapManager(this);

/**

* 如果BMapManager没有初始化则初始化BMapManager

*/

app.mBMapManager.init(DemoApplication.strKey,new DemoApplication.MyGeneralListener());

}

/**

* 由于MapView在setContentView()中初始化,所以它需要在BMapManager初始化之后

*/

setContentView(R.layout.activity_layers);

mMapView = (MapView)findViewById(R.id.bmapView);

/**

* 获取地图控制器

*/

mMapController = mMapView.getController();

/**

* 设置地图是否响应点击事件 .

*/

mMapController.enableClick(true);

/**

* 设置地图缩放级别

*/

mMapController.setZoom(12);

/**

* 显示内置缩放控件

*/

mMapView.setBuiltInZoomControls(true);

/**

* 将地图移动至天安门

* 使用百度经纬度坐标,可以通过http://api.map.baidu.com/lbsapi/getpoint/index.html查询地理坐标

* 如果需要在百度地图上显示使用其他坐标系统的位置,请发邮件至mapapi@baidu.com申请坐标转换接口

*/

double cLat = 39.945 ;

double cLon = 116.404 ;

GeoPoint p = new GeoPoint((int)(cLat * 1E6), (int)(cLon * 1E6));

mMapController.setCenter(p);

}

/**

* 设置底图显示模式

* @param view

*/

public void setMapMode(View view){

boolean checked = ((RadioButton) view).isChecked();

switch(view.getId()) {

case R.id.normal:

if (checked)

mMapView.setSatellite(false);

break;

case R.id.statellite:

if (checked)

mMapView.setSatellite(true);

break;

}

}

/**

* 设置是否显示交通图

* @param view

*/

public void setTraffic(View view){

mMapView.setTraffic(((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.destroy();

super.onDestroy();

}

@Override

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

mMapView.onSaveInstanceState(outState);

}

@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

mMapView.onRestoreInstanceState(savedInstanceState);

}

}对于做android开发不就的同学也许会发现,setMapMode和setTraffic方法没有被调用,其实看看layout文件,你会发现这两行代码:

android:onClick="setMapMode"

android:onClick="setTraffic"在控件属性中设置onClick会直接完成监听。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值