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

来源:互联网 发布:java用jsp生成二维码 编辑:程序博客网 时间:2024/06/16 14:45
   百度地图移动版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;@Overrideprotected 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() {@Overridepublic void onGetPermissionState(int arg0) {if(arg0 == 300){Toast.makeText(MainActivity.this, "您输入的key有错误!", 1);}}@Overridepublic 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);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();if(bMapManager!=null){bMapManager.destroy();bMapManager=null;}}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();if(bMapManager!=null){bMapManager.start();}}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();if(bMapManager!=null){bMapManager.stop();}}@Overridepublic 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;}@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}}

    特此说明,模拟器就用API 8就可以。地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init, start, stop, destroy。建议在Application里生成BMapManager对象并初使化,在程序退出时调用destory,在需要使用sdk功能的activityonCreate里调用start, onDestroy调用stop,或者onResume/onPause分别调用startstop
原创粉丝点击