Android 百度地图初学

用户在使用API之前需要获取百度地图移动版API Key,并且该KEY与您引用API的程序名称有关


百度地图API支持Android 1.5及以上系统。

<1>API添加到Andoid工程中


必须显得下载API开发包:

必须显得下载API开发包:

解压之后包括两个文件baidumapapi.jar和libBMapApiEngine.so。在工程根目录下创建ibs\armeabi目录,并拷贝到其目录下。

在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。

<2>在Manifest中添加使用权限

这不很多人会忘记的,以定要注意。

  1. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  2. <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
  3. <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
  4. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  5. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  6. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
  7. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission>
<3> 在Manifest中添加Android版本支持
  1. <supports-screensandroid:largeScreens="true"
  2. android:normalScreens="true"android:smallScreens="true"
  3. android:resizeable="true"android:anyDensity="true"/>
  4. <uses-sdkandroid:minSdkVersion="3"></uses-sdk>
<4> 让创建的地图Activity继承com.baidu.mapapi.MapActivity, 并import相关类

代码里的import相关类有些可能用不着,这的取决你的功能。

你可以不用导入这些,用那个再import("alt+/"快捷键)

  1. importjava.util.ArrayList;
  2. importjava.util.List;
  3. importandroid.content.Context;
  4. importandroid.graphics.Canvas;
  5. importandroid.graphics.Paint;
  6. importandroid.graphics.Point;
  7. importandroid.graphics.drawable.Drawable;
  8. importandroid.location.Location;
  9. importandroid.os.Bundle;
  10. importandroid.util.Log;
  11. importandroid.view.View;
  12. importandroid.widget.Toast;
  13. importcom.baidu.mapapi.BMapManager;
  14. importcom.baidu.mapapi.GeoPoint;
  15. importcom.baidu.mapapi.ItemizedOverlay;
  16. importcom.baidu.mapapi.LocationListener;
  17. importcom.baidu.mapapi.MKAddrInfo;
  18. importcom.baidu.mapapi.MKDrivingRouteResult;
  19. importcom.baidu.mapapi.MKGeneralListener;
  20. importcom.baidu.mapapi.MKLocationManager;
  21. importcom.baidu.mapapi.MKPlanNode;
  22. importcom.baidu.mapapi.MKPoiResult;
  23. importcom.baidu.mapapi.MKSearch;
  24. importcom.baidu.mapapi.MKSearchListener;
  25. importcom.baidu.mapapi.MKTransitRouteResult;
  26. importcom.baidu.mapapi.MKWalkingRouteResult;
  27. importcom.baidu.mapapi.MapActivity;
  28. importcom.baidu.mapapi.MapController;
  29. importcom.baidu.mapapi.MapView;
  30. importcom.baidu.mapapi.MyLocationOverlay;
  31. importcom.baidu.mapapi.Overlay;
  32. importcom.baidu.mapapi.OverlayItem;
  33. importcom.baidu.mapapi.PoiOverlay;
  34. importcom.baidu.mapapi.RouteOverlay;
  35. importcom.baidu.mapapi.TransitOverlay;
  36. publicclassMyMapActivityextendsMapActivity{
  37. @Override
  38. publicvoidonCreate(BundlesavedInstanceState){
  39. super.onCreate(savedInstanceState);
  40. setContentView(R.layout.main);
  41. }
  42. @Override
  43. protectedbooleanisRouteDisplayed(){
  44. returnfalse;
  45. }
  46. }
<5> 在布局xml中添加地图控件
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <TextViewandroid:layout_width="fill_parent"
  6. android:layout_height="wrap_content"android:text="@string/hello"/>
  7. <com.baidu.mapapi.MapViewandroid:id="@+id/bmapsView"
  8. android:layout_width="fill_parent"android:layout_height="fill_parent"
  9. android:clickable="true"/>
  10. </LinearLayout>
<6> 始化地图Activity, 在地图Activity中定义变量: BMapManager mapManager = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:
  1. mapManager=newBMapManager(getApplication());
  2. mapManager.init(key,null);
  3. super.initMapActivity(mapManager);
  4. MapViewmapView=(MapView)findViewById(R.id.mapsView);
  5. mapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件
  6. MapControllermapController=mapView.getController();//得到mMapView的控制权,可以用它控制和驱动平移和缩放
  7. GeoPointpoint=newGeoPoint((int)(39.915*1E6),
  8. (int)(116.404*1E6));//用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
  9. mapController.setCenter(point);//设置地图中心点
  10. mapController.setZoom(12);//设置地图zoom级别
Override以下方法,管理API:
  1. @Override
  2. protectedvoidonDestroy(){
  3. if(mapManager!=null){
  4. mapManager.destroy();
  5. mapManager=null;
  6. }
  7. super.onDestroy();
  8. }
  9. @Override
  10. protectedvoidonPause(){
  11. if(mapManager!=null){
  12. mapManager.stop();
  13. }
  14. super.onPause();
  15. }
  16. @Override
  17. protectedvoidonResume(){
  18. if(mapManager!=null){
  19. mapManager.start();
  20. }
  21. super.onResume();
  22. }



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值