百度地图开发环境配置

百度地图开发环境配置

1、下载百度地图SDK

开发者可在百度地图AndroidSDK的下载页面下载到最新版的地图SDK。

下载地址为:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download

在这个界面我们可以按照自己的需求下载相应的SDK,同时可选择下载开发包、实例代码、及参考类。现在,只选择下载开发包。下载完成后打开压缩包。可以看到如下文件内容:

readme文件是帮助文档,libs文件夹中文件如下:

其中jar 文件为第三方支持库。其他的文件夹下是各类的动态链接库文件,文件后缀名为.so,全称是shared object,用于动态连接,和dll差不多。

2、将文件配置进开发环境(我的开发环境是Android Studio)

Android Studio工程配置方法

第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库,放入libBaiduMapSDK_vX_X_X_X.so

如下图所示,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。



 

其实就是将上面下载的SDK包中的jar文件全部都复制到libs目录中,动态库文件夹全部赋值到新建的jniLibs文件夹中去。仅此而已。

另外,so的配置也可以参考demo给出的目录结构,如下图所示,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码: jniLibs.srcDir ‘libs‘ 来说明so的路径为该libs路径。


第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。

第一种方法:对于每个jar文件,右键-选择Add As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示:


第二种方法:菜单栏选择 File—>Project Structure。在弹出的Project Structure对话框中, 选择module, 然后点击Dependencies 选项卡。点击绿色的加号选择File
dependency.然后选择要添加的jar包即可 完成上边的操作后在app目录下的build.gradle文件中,会有引入的类库,如图所示。


当app文件夹中的build.gradle文件中出现如下图的内容就证明已经弄好了:

如果要用到导航功能与TTS语音,还需要在assert文件夹中加入相应的导航SDK中的资源文件。具体可以查看百度的官方文档。

3、获取密钥

官网地址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key

申请密钥Android SDK

·        简介

·        申请步骤

简介

在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并且,该密钥与您创建的过程名称有关,具体流程请参考如下介绍。

Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key

注意:

1.为了给用户提供更安全的服务,Android
SDK自v2.1.3版本开始采用了全新的Key验证体系。因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请;(新旧key不可通用)

2.新Key机制,每个Key仅且唯一对于1个应用验证有效,即对该Key配置环节中使用的包名匹配的应用有效。因此,多个应用【包括多个包名】需申请多个Key,或者对1个Key进行多次配置;

3.在新key机制下,若你需要在同一个工程中同时使用百度地图、定位、导航SDK可以共用同一个key;

4.如果您在Android
SDK开发过程中使用了LBS云服务则需要为该服务单独申请一个for server类型的密钥;

登录百度账号

访问API控制台页面,若您未登录百度账号,将会进入百度账号登录页面,如下图:

登陆API控制台

登录会跳转到API控制台服务,具体如下图:


创建应用

点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android
SDK”:

配置应用

在应用类型选为“AndroidSDK”后,需要配置应用的安全码,如下图所示:

获取安全码

安全码的组成规则为:Android签名证书的sha1值+packagename例如:

SHA1:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

包名:com.baidumap.demo

Android应用获取包名packagename,根据开发工具不同,获取位置有所不同

1、使用 eclipse开发

包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:

2、使用 Android studio开发

包名需要在文件build.gradle中查询 applictionId,例如:

Android签名证书的sha1值获取方式有两种:

第一种方法:使用keytool

第1步:运行进入控制台

第2步:定位到.android文件夹下,输入cd
.android

第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:

其中keytool为jdk自带工具;keystorefile为Android签名证书文件

第二种方法:在eclipse中,在adt 22中直接查看

如果使用adt 22,可以在eclipse中直接查看:windows
-> preferance ->android -> build。 如下图示:

其中“SHA1fingerprint”值即为Android签名证书的sha1值

成功创建KEY

在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的Key,请妥善保管您所申请的Key。到这您就可以使用新Key来完成您的开发工作了。

四、在AndroidManifest中添加开发密钥、所需权限等信息

(1)在application中添加开发密钥

<application>

<meta-data

android:name="com.baidu.lbsapi.API_KEY"

android:value="开发者
key"/>

</application>

2)添加所需权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>

<uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.GET_TASKS"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

第三步,在布局xml文件中添加地图控件;

<com.baidu.mapapi.map.MapView

android:id="@+id/bmapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true"/>

第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:

public class MainActivityextends Activity
{

@Override

protectedvoid onCreate(Bundle
savedInstanceState){

super.onCreate(savedInstanceState);

//在使用SDK各组件之前初始化context信息,传入ApplicationContext 

//注意该方法要再setContentView方法之前实现 

SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

}

}

注意:在SDK各功能组件使用之前都需要调用

SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

这里需要注意一下:initialize方法中必须传入的是ApplicationContext,传入this,或者MAinActivity.this都不行,不然会报运行时异常,所以百度建议把该方法放到Application的初始化方法中。

第五步,创建地图Activity,管理地图生命周期;

public class MainActivityextends Activity
{

MapView mMapView
=null;

@Override

protectedvoid onCreate(Bundle
savedInstanceState){

super.onCreate(savedInstanceState);

//在使用SDK各组件之前初始化context信息,传入ApplicationContext 

//注意该方法要再setContentView方法之前实现 

SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

//获取地图控件引用 

mMapView
=(MapView) findViewById(R.id.bmapView);

}

@Override

protectedvoid onDestroy(){

super.onDestroy();

//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 

mMapView.onDestroy();

}

@Override

protectedvoid onResume(){

super.onResume();

//在activity执行onResume时执行mMapView.onResume
(),实现地图生命周期管理 

mMapView.onResume();

}

@Override

protectedvoid onPause(){

super.onPause();

//在activity执行onPause时执行mMapView.onPause
(),实现地图生命周期管理 

mMapView.onPause();

}

}

完成以上步骤后,运行程序,即可在您的应用中显示如下地图:

以上的例子为大家介绍了如何构建一个基础的地图页面。地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MutiMapViewDemo中的相关介绍。

如果用到定位、导航功能,则需要添加一下信息:

在application标签中声明service组件,每个app拥有自己单独的定位service

<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
</service>

必须声明使用的权限

<!--这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<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"/>
<!-- SD卡读取权限,用户写入离线定位数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

时间: 2024-10-16 03:00:12

百度地图开发环境配置的相关文章

Android studio 百度地图开发(5)查询周边服务(加油站)

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

Android 百度地图开发之一(Hello BaiDu Map)

之前也接触过百度地图的开发,但那是在网上找的案例或代码,而且是比较老的版本.打算重新学习一下百度地图的开发. 本次使用的百度地图的版本是 Android SDK v3.0.0 本篇文章主要讲述百度地图开发的准备和地图的成功显示即可. 首先建议大家先申请注册一个百度账号. 申请密钥(要想实现百度地图的相关服务必须申请密钥),网址:http://lbsyun.baidu.com/apiconsole/key 需要注意的是:应用名称不要重复或无效,安全码的输入详情请查看:http://develope

Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

Android studio 百度地图开发(3)地图导航

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 地图显示.工程配置请参考:Android studio 百度地图开发(1)配置工程.显示地图 百度地图定位请参考:Android studio 百度地图开发(2)地图定位 一.我为百度做点事 因为在写定位功能时自己想从头到尾地写,但最后完全是参考了百度官网上的Demo才弄出来,后来发现用Android Studio做导

Android Google Map v2具体解释:开发环境配置

Android Google Map v2具体解释:开发环境配置                                       --转载请注明出处:coder-pig 说在前面: 说到地图定位,如今越来越多的社交app都增加了地图和定位的功能模块,用户非常多的时候 也会用到这些东东,比方,到外面吃饭,次次吃饭前都要拍下照片发到朋友圈,定个位,然后发条说说, 炫耀一下自己今天吃了什么高大上的东东,炫耀和攀比心理我懂,只是,一次下班去吃饭,看到一妹子 吃饭,拍照+发朋友圈,足足用了大概

Android Google Map v2详解之:开发环境配置

Android Google Map v2详解之:开发环境配置                                       --转载请注明出处:coder-pig 说在前面: 说到地图定位,现在越来越多的社交app都加入了地图和定位的功能模块,用户很多的时候 也会用到这些东东,比如,到外面吃饭,次次吃饭前都要拍下照片发到朋友圈,定个位,然后发条说说, 炫耀一下自己今天吃了什么高大上的东东,炫耀和攀比心理我懂,不过,一次下班去吃饭,看到一妹子 吃饭,拍照+发朋友圈,足足用了大概20

Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

标签: Android百度地图API Key  分类: Android 百度地图开发(2)  最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的Android项目中加入百度地图的功能,接下来我会写一系列关于百度地图的文章,欢迎大家到时候关注!   一 申请API key 在使用百度地图之前,我们必须去申请一个百度地图的API key,申请地址http://lbsyun.baidu.com/a

【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置

目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分享知识给大家 还是先放出待会儿的测试用图 下载和安装OpenCV SDK sources里面是源代码想查看完整的源代码需要用cmake来解包如何解包大家百度一下就可以或者下次浅墨来专门讲一讲这里就先不多说了 配置环境变量 工程包含include目录的配置 工程库lib目录的配置 链接库的配置 在Wi

(转)OpenCV学习:OpenCV2.4.8+VS2010开发环境配置

初学OpenCV,关于OpenCV的环境配置,在网上搜索了很多方法,最后自己终于搞定了,纪念一下... 配置的过程深受一篇博文的影响,该博文讲述的十分清楚,特此转载过来,和大家分享!!!!! 本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用OpenCV版本:2.4.