百度地图api添加标注中1.3版本如何添加工具...

&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!百度地图开发环境配置
百度地图开发环境配置
百度地图开发
百度地图开发环境配置
1、下载百度地图SDK
开发者可在百度地图AndroidSDK的下载页面下载到最新版的地图SDK。
下载地址为:
在这个界面我们可以按照自己的需求下载相应的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、获取密钥
官网地址:/index.php?title=androidsdk/guide/key
申请密钥Android SDK
在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并且,该密钥与您创建的过程名称有关,具体流程请参考如下介绍。
Key的申请地址为:
&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
&&&@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&
我的热门文章
即使是一小步也想与你分享

参考资料

 

随机推荐