百度地图SDK for Android【Demo地图图层】
来源:互联网 发布:软件开发团队建设 编辑:程序博客网 时间:2024/04/27 13:02
http://blog.csdn.net/baidulbs/article/details/8569433
百度地图SDK为开发者提供了多种地图展示形式,用户可以通过相关的设置展示不同的地图图层,在这我将为大家介绍如何加载不同地图图层及各图层之间的切换。
首先,我们要构建一个最基本的地图应用,具体介绍请参考:百度地图SDK for Android【Demo地图展示】
在这个工程的基础之上我们做一定的修改。
第一,修改布局文件,添加控制不同图层显示的button控件;具体代码如下:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity" >
- <!-- 放入百度地图的mapview -->
- <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:clickable="true"/>
- <!-- 添加button,控制地图显示 -->
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
- android:text="Button" />
- </RelativeLayout>
第二,在主类中初始化button对象、并设置相应的点击事件。不同图层的显示使用方法setSatellite和setTraffic来实现,具体代码如下所示:
- import com.baidu.mapapi.BMapManager;
- import com.baidu.mapapi.map.MapController;
- import com.baidu.mapapi.map.MapView;
- import com.baidu.platform.comapi.basestruct.GeoPoint;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.app.Activity;
- public class MainActivity extends Activity {
- BMapManager bMapManager = null; // 定义管理sdk的对象
- MapView mapView = null; // 定义mapview对象
- Button button;
- int flag = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错
- bMapManager = new BMapManager(getApplication());
- bMapManager.init("您申请的key", null);
- setContentView(R.layout.activity_main);
- // 初始化mapview对象,并且设置显示缩放控件
- mapView = (MapView) findViewById(R.id.bmapsView);
- mapView.setBuiltInZoomControls(true);
- // 初始化button
- button = (Button) findViewById(R.id.button1);
- button.setText("点击进入《卫星图》");
- // 定义地图控件,获取mapview的控制,并把地图范围定位北京市
- MapController mapController = mapView.getController();
- GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
- mapController.setCenter(point);
- mapController.setZoom(12);
- // 设置button的点击事件,根据点击次数的变化,分别设置显示普通地图、实时交通图和卫星图
- button.setOnClickListener(new OnClickListener()
- {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(flag == 0)
- {
- flag = flag + 1;
- mapView.setSatellite(true);
- button.setText("点击进入《实时交通图》");
- }
- else if(flag == 1)
- {
- flag = flag + 1;
- mapView.setSatellite(false);
- mapView.setTraffic(true);
- button.setText("点击进入《普通地图》");
- }
- else if(flag == 2)
- {
- flag = 0;
- mapView.setTraffic(false);
- button.setText("点击进入《卫星图》");
- }
- }
- });
- }
- //注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- mapView.onResume();
- if(bMapManager!=null){
- bMapManager.start();
- }
- super.onResume();
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- mapView.destroy();
- if(bMapManager!=null){
- bMapManager.destroy();
- bMapManager=null;
- }
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- mapView.onPause();
- if(bMapManager!=null){
- bMapManager.stop();
- }
- super.onPause();
- }
- }
各图层的效果如下:
点击下载原工程文件!
小提示:百度地图SDK是支持地图旋转和3D特效的,双指扭转可实现地图旋转、双指下滑实现3D楼宇特效
更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/
- 百度地图SDK for Android【Demo地图图层】
- 百度地图SDK for Android【Demo地图图层】
- 百度地图SDK for Android【Demo自定义图层】
- 百度地图SDK for Android【地图图层】
- 百度地图SDK for Android【Demo地图展示】
- 百度地图SDK for Android自定义图层
- 百度地图 Android SDK - 图层顺序
- 百度地图SDK for Android【Demo兴趣点搜索】
- 百度地图SDK for Android【Demo路径规划】
- 百度地图SDK for Android【Demo Place详情页】
- Android SDK for 百度地图【Demo兴趣搜索】
- 百度地图SDK for Android【Demo兴趣点搜索】
- 百度地图SDK for Android【Demo Place详情页】
- 百度地图SDK for Android【Demo兴趣点搜索】
- 百度地图SDK for Android【离线地图】
- 百度地图SDK for Android【离线地图】
- 百度地图SDK for Android
- 百度地图SDK for Android【Demo调起百度地图客户端导航功能】
- 安装ttf-mscorefonts-installer的方法
- 百度地图SDK for Android【路径规划】
- Android网络编程之Http通信
- 设备交互验证
- 谈谈软件开发中的坚持
- 百度地图SDK for Android【Demo地图图层】
- Hibernate延迟加载
- 百度地图SDK for Android【Demo兴趣点搜索】
- ecshop中 dwt, lbi 文件详解
- Android里透明的ListView
- 百度地图SDK for Android【Demo Place详情页】
- POJ 1716 Integer Intervals 差分约束系统
- Ejb定时器
- 无法创建action在spring中的bean的错:org.springframework.beans.factory.BeanCreationException: Error creating be