Android--百度地图学习(第一章)如何搭建百度地图的环境

   百度地图移动版API是一套基于移动互联网设备的应用程序接口,支持iOS/Android台。通过该接口,您可以轻松访问百度服务和数据,构建功能丰富、交互性强的地图应用程序。百度地图移动版API不仅包含构建地图的基本接口,还提供了诸如定位服务、本地搜索、路线规划等数据服务,你可以根据自己的需要进行选择。
   
   百度地图官网地址:http://developer.baidu.com/map/android-mobile-apply-key.htm ,在这个网站上你可以申请到百度地图的Key.
 
 
     就像上边一样,应用程序名称,描述随便写写就行,然后点击生成API密钥,就会出现一个API密钥,然后复制,这个就是你要使用的百度API密钥。(是不是比Google map API申请简单的多)
 
     在那个网站上你还可以下载百度地图相关的开发包,里边有一些源码的例子。
 

     (一)搭建Android百度地图开发环境

                 如何把API添加到我的Andoid工程中?

     首先在工程里新建libs文件夹,并API开发包里的baidumapapi.jar拷贝到libs根目录下,将libBMapApiEngine.so 拷贝到
libs\armeabi目录下。然后在工程属性->Java Build Path->Libraries中选择Add External JARs,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。
            
      在Manifest清单文件中添加使用权限以及屏幕支持
<supports-screens android:largeScreens="true"
		android:normalScreens="true" android:smallScreens="true"
		android:resizeable="true" android:anyDensity="true" />
	<!-- 添加百度地图开发的授权 -->
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
	<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
	<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

              在布局文件中添加百度地图的空间
<!-- 添加显示百度地图的控件 -->

    <com.baidu.mapapi.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />

      (二)演示搭建交通地图和卫星地图

                 在mainActivity中,mainActivity需要继承MapActivity,实现MapActivity中得protected boolean isRouteDisplayed()。下面贴出源码:

 
public class MainActivity extends MapActivity {

	private MapView mapview;
	private BMapManager bMapManager;
	
	private String key = "544FAA71566C13CF5A3535787F12CE73970F85EA";
	private MapController mapController;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mapview = (MapView)this.findViewById(R.id.mapview);
		
		bMapManager = new BMapManager(this);
		bMapManager.init(key, new MKGeneralListener() {
			
			@Override
			public void onGetPermissionState(int arg0) {

				if(arg0 == 300){
					Toast.makeText(MainActivity.this, "您输入的key有错误!", 1);
				}
			}
			
			@Override
			public void onGetNetworkState(int arg0) {
				// TODO Auto-generated method stub
				
			}
		});
		
		initMapActivity(bMapManager);
		
		//设置缩放功能
		mapview.setBuiltInZoomControls(true);
		mapController = mapview.getController();
		
		//设置经纬度:成都
		GeoPoint geoPoint = new GeoPoint((int)(30.659*1E6), (int)(104.065*1E6));
		
		mapController.setCenter(geoPoint);//设置一个中心点
		mapController.setZoom(12);
	}

	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		if(bMapManager!=null){
			bMapManager.destroy();
			bMapManager=null;
		}
	}
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		if(bMapManager!=null){
			bMapManager.start();
		}
	}
	
	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		if(bMapManager!=null){
			bMapManager.stop();
		}
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	protected boolean isRouteDisplayed() {
		// TODO Auto-generated method stub
		return false;
	}

}

    特此说明,模拟器就用API 8就可以。地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init, start, stop, destroy。建议在Application里生成BMapManager对象并初使化,在程序退出时调用destory,在需要使用sdk功能的activityonCreate里调用start, onDestroy调用stop,或者onResume/onPause分别调用startstop
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值