Android的百度地图开发BaiduMapApiDemo

本文详细介绍了如何在Android工程中集成并使用百度地图API,包括添加必要的权限、配置地图Activity、初始化API、以及在布局文件中添加地图控件。通过实现关键方法,实现了地图的基本功能展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在工程里新建libs文件夹,并API开发包里的baidumapapi.jar拷贝到libs根目录下,将libBMapApiEngine.so 拷贝到libs\armeabi目录下。官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加。然后在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。

百度地图的“Hello,World”

  • 在Manifest中添加使用权限
  1. <uses-permission android:name ="android.permission.ACCESS_NETWORK_STATE" > </uses-permission>
  2. <uses-permission android:name ="android.permission.ACCESS_FINE_LOCATION" > </uses-permission>
  3. <uses-permission android:name ="android.permission.INTERNET" > </uses-permission>
  4. <uses-permission android:name ="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission>
  5. <uses-permission android:name ="android.permission.ACCESS_WIFI_STATE" > </uses-permission>
  6. <uses-permission android:name ="android.permission.CHANGE_WIFI_STATE" > </uses-permission>
  7. <uses-permission android:name ="android.permission.READ_PHONE_STATE" > </uses-permission>
在Manifest中添加Android版本支持
  1. <supports-screens android:largeScreens ="true"
  2. android:normalScreens ="true" android:smallScreens ="true"
  3. android:resizeable ="true" android:anyDensity ="true" />
  4. <uses-sdk android:minSdkVersion ="3" > </uses-sdk>
让创建的地图Activity继承com.baidu.mapapi.MapActivity, 并import相关类
  1. import java.util.ArrayList ;
  2. import java.util.List ;
  3.  
  4. import android.content.Context ;
  5. import android.graphics.Canvas ;
  6. import android.graphics.Paint ;
  7. import android.graphics.Point ;
  8. import android.graphics.drawable.Drawable ;
  9. import android.location.Location ;
  10. import android.os.Bundle ;
  11. import android.util.Log ;
  12. import android.view.View ;
  13. import android.widget.Toast ;
  14.  
  15. import com.baidu.mapapi.BMapManager ;
  16. import com.baidu.mapapi.GeoPoint ;
  17. import com.baidu.mapapi.ItemizedOverlay ;
  18. import com.baidu.mapapi.LocationListener ;
  19. import com.baidu.mapapi.MKAddrInfo ;
  20. import com.baidu.mapapi.MKDrivingRouteResult ;
  21. import com.baidu.mapapi.MKGeneralListener ;
  22. import com.baidu.mapapi.MKLocationManager ;
  23. import com.baidu.mapapi.MKPlanNode ;
  24. import com.baidu.mapapi.MKPoiResult ;
  25. import com.baidu.mapapi.MKSearch ;
  26. import com.baidu.mapapi.MKSearchListener ;
  27. import com.baidu.mapapi.MKTransitRouteResult ;
  28. import com.baidu.mapapi.MKWalkingRouteResult ;
  29. import com.baidu.mapapi.MKSuggestionResult ;
  30. import com.baidu.mapapi.MapActivity ;
  31. import com.baidu.mapapi.MapController ;
  32. import com.baidu.mapapi.MapView ;
  33. import com.baidu.mapapi.MyLocationOverlay ;
  34. import com.baidu.mapapi.Overlay ;
  35. import com.baidu.mapapi.OverlayItem ;
  36. import com.baidu.mapapi.PoiOverlay ;
  37. import com.baidu.mapapi.RouteOverlay ;
  38. import com.baidu.mapapi.TransitOverlay ;
  39.  
  40. public class MyMapActivity extends MapActivity {
  41. @Override
  42. public void onCreate( Bundle savedInstanceState) {
  43. super .onCreate ( savedInstanceState) ;
  44. setContentView( R.layout .main ) ;
  45. }
  46.  
  47. @Override
  48. protected boolean isRouteDisplayed( ) {
  49. return false ;
  50. }
  51. }
在布局xml中添加地图控件
  1. <?xml version ="1.0" encoding ="utf-8" ?>
  2. <LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
  3. android:orientation ="vertical" android:layout_width ="fill_parent"
  4. android:layout_height ="fill_parent" >
  5. <TextView android:layout_width ="fill_parent"
  6. android:layout_height ="wrap_content" android:text ="@string/hello" />
  7. <com.baidu.mapapi.MapView android:id ="@+id/bmapsView"
  8. android:layout_width ="fill_parent" android:layout_height ="fill_parent"
  9. android:clickable ="true" />
  10. </LinearLayout>
初始化地图Activity/使用key

在地图Activity中定义变量: BMapManager mBMapMan = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:

  1. BMapManager mBMapMan = new BMapManager( getApplication( ) ) ;
  2. mBMapMan.init ( "我的Key" , null ) ;
  3. super .initMapActivity ( mBMapMan) ;
  4.  
  5. MapView mMapView = ( MapView) findViewById( R.id .bmapsView ) ;
  6. mMapView.setBuiltInZoomControls ( true ) ; //设置启用内置的缩放控件
  7.  
  8. MapController mMapController = mMapView.getController ( ) ; // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
  9. GeoPoint point = new GeoPoint( ( int ) ( 39.915 * 1E6) ,
  10. ( int ) ( 116.404 * 1E6) ) ; //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
  11. mMapController.setCenter ( point) ; //设置地图中心点
  12. mMapController.setZoom ( 12 ) ; //设置地图zoom级别

Override以下方法,管理API:

  1. @Override
  2. protected void onDestroy( ) {
  3. if ( mBMapMan != null ) {
  4. mBMapMan.destroy ( ) ;
  5. mBMapMan = null ;
  6. }
  7. super .onDestroy ( ) ;
  8. }
  9. @Override
  10. protected void onPause( ) {
  11. if ( mBMapMan != null ) {
  12. mBMapMan.stop ( ) ;
  13. }
  14. super .onPause ( ) ;
  15. }
  16. @Override
  17. protected void onResume( ) {
  18. if ( mBMapMan != null ) {
  19. mBMapMan.start ( ) ;
  20. }
  21. super .onResume ( ) ;
  22. } 完成上述步骤后,运行程序,结果如下:  

百度地图申请key地址:http://dev.baidu.com/wiki/static/imap/key/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值