因为项目的需要,最近接触了一下百度地图Android开发,遇到很多问题,相信很多博友也遇到到过这些问题,现在把我的实践经验给大家分享一下。
开发百度地图,第一步:你需要首先登录百度地图开放平台,注册一个开发者身份,通过这个身份你可以查看到百度最新的开发文档,为我们的开发提供便利。有了开发者身份后,你就可以开始为开发百度地图做准备了。
打开Android开发工具,新建一个开发项目。然后利用你在百度注册的开发者身份申请密钥,申请密钥的方法百度文档说的很清楚,给了两钟申请方法,建议使用后一种。有了密钥下面就是开发需要使用的Jar包了,在百度开发者平台下载自己需要的即可。
有了上面的准备工作,接下来我们就可以开始开发了,打开Android开发工具,打开刚刚创建好的工程,把刚刚下载好的Jar包导入到工程中,需要注意的是Jar包导入时还需要添加一个:armeabi文件夹里面有两个libBaiduMapSDK_v3_0_0.so和liblocSDK4d.so也要一并导入。导入选择项目右键单击,选择properties>Java Build Path>Libraries,点击右侧Add External JARS...,把工程Libs下的Jar文件选中,最后不要忘记把Oreder and Exporxt下的Jar包选上,点击Ok至此环境配置就完成了。
下面就是代码了,首先AndroidManifest.xml文件:
获取权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_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> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission> <uses-permission android:name="android.permission.READ_LOGS" > </uses-permission> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
设置密钥
//添加在application里面<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="密钥号码" /> <service android:name="com.example.baidumap_01" android:enabled="true" android:process=":remote" > <intent-filter> <action android:name="com.baidu.location.service_v2.2" > </action> </intent-filter> </service>
布局文件activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <com.baidu.mapapi.map.MapView android:id="@+id/id_bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </RelativeLayout>
主文件MainActivity.java文件:
package com.example.baidumap_01; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; import android.app.Activity; import android.os.Bundle; import android.view.Window; public class MainActivity extends Activity { private MapView mMapView = null; private BaiduMap mBaiduMap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.id_bmapView); mBaiduMap = mMapView.getMap(); //普通地图 //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); //卫星地图 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } }
运行后的效果:
以上就是百度地图V3.0的开发介绍,有兴趣的可以留言交流。
时间: 2024-10-06 08:04:01