Android的百度地图开发BaiduMapApiDemo
16lz
2021-01-26
首先在工程里新建libs文件夹,并API开发包里的baidumapapi.jar拷贝到libs根目录下,将libBMapApiEngine.so 拷贝到libs\armeabi目录下。官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加。然后在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。
百度地图的“Hello,World”
- 在Manifest中添加使用权限
- <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>
- <supports-screens android:largeScreens ="true"
- android:normalScreens ="true" android:smallScreens ="true"
- android:resizeable ="true" android:anyDensity ="true" />
- <uses-sdk android:minSdkVersion ="3" > </uses-sdk>
- import java.util.ArrayList ;
- import java.util.List ;
- import android.content.Context ;
- import android.graphics.Canvas ;
- import android.graphics.Paint ;
- import android.graphics.Point ;
- import android.graphics.drawable.Drawable ;
- import android.location.Location ;
- import android.os.Bundle ;
- import android.util.Log ;
- import android.view.View ;
- import android.widget.Toast ;
- import com.baidu.mapapi.BMapManager ;
- import com.baidu.mapapi.GeoPoint ;
- import com.baidu.mapapi.ItemizedOverlay ;
- import com.baidu.mapapi.LocationListener ;
- import com.baidu.mapapi.MKAddrInfo ;
- import com.baidu.mapapi.MKDrivingRouteResult ;
- import com.baidu.mapapi.MKGeneralListener ;
- import com.baidu.mapapi.MKLocationManager ;
- import com.baidu.mapapi.MKPlanNode ;
- import com.baidu.mapapi.MKPoiResult ;
- import com.baidu.mapapi.MKSearch ;
- import com.baidu.mapapi.MKSearchListener ;
- import com.baidu.mapapi.MKTransitRouteResult ;
- import com.baidu.mapapi.MKWalkingRouteResult ;
- import com.baidu.mapapi.MKSuggestionResult ;
- import com.baidu.mapapi.MapActivity ;
- import com.baidu.mapapi.MapController ;
- import com.baidu.mapapi.MapView ;
- import com.baidu.mapapi.MyLocationOverlay ;
- import com.baidu.mapapi.Overlay ;
- import com.baidu.mapapi.OverlayItem ;
- import com.baidu.mapapi.PoiOverlay ;
- import com.baidu.mapapi.RouteOverlay ;
- import com.baidu.mapapi.TransitOverlay ;
- public class MyMapActivity extends MapActivity {
- @Override
- public void onCreate ( Bundle savedInstanceState ) {
- super . onCreate ( savedInstanceState ) ;
- setContentView ( R. layout . main ) ;
- }
- @Override
- protected boolean isRouteDisplayed ( ) {
- return false ;
- }
- }
- <?xml version ="1.0" encoding ="utf-8" ?>
- <LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
- android:orientation ="vertical" android:layout_width ="fill_parent"
- android:layout_height ="fill_parent" >
- <TextView android:layout_width ="fill_parent"
- android:layout_height ="wrap_content" android:text ="@string/hello" />
- <com.baidu.mapapi.MapView android:id ="@+id/bmapsView"
- android:layout_width ="fill_parent" android:layout_height ="fill_parent"
- android:clickable ="true" />
- </LinearLayout>
在地图Activity中定义变量: BMapManager mBMapMan = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:
- BMapManager mBMapMan = new BMapManager ( getApplication ( ) ) ;
- mBMapMan. init ( "我的Key" , null ) ;
- super . initMapActivity ( mBMapMan ) ;
- MapView mMapView = ( MapView ) findViewById ( R. id . bmapsView ) ;
- mMapView. setBuiltInZoomControls ( true ) ; //设置启用内置的缩放控件
- MapController mMapController = mMapView. getController ( ) ; // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
- GeoPoint point = new GeoPoint ( ( int ) ( 39.915 * 1E6 ) ,
- ( int ) ( 116.404 * 1E6 ) ) ; //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
- mMapController. setCenter ( point ) ; //设置地图中心点
- mMapController. setZoom ( 12 ) ; //设置地图zoom级别
Override以下方法,管理API:
- @Override
- protected void onDestroy ( ) {
- if ( mBMapMan != null ) {
- mBMapMan. destroy ( ) ;
- mBMapMan = null ;
- }
- super . onDestroy ( ) ;
- }
- @Override
- protected void onPause ( ) {
- if ( mBMapMan != null ) {
- mBMapMan. stop ( ) ;
- }
- super . onPause ( ) ;
- }
- @Override
- protected void onResume ( ) {
- if ( mBMapMan != null ) {
- mBMapMan. start ( ) ;
- }
- super . onResume ( ) ;
- } 完成上述步骤后,运行程序,结果如下:
百度地图申请key地址:http://dev.baidu.com/wiki/static/imap/key/
更多相关文章
- [Android][Framework] 添加系统服务
- 站外地图--程序员
- cocos2d-x android 添加新场景报错: undefined reference to `vt
- Android(安卓)Studio配置百度地图开发环境
- 地图API使用文档-以腾讯地图为例
- Android(安卓)Phonebook编写联系人UI加载及联系人保存流程(四)
- android动态加入xml布局并设置id
- Android从相册中选择图片显示出来
- Android的ImageView如何maxHeight与maxWidth生效