百度地图:第一篇HelloWorld
来源:互联网 发布:数据录入员工作职责 编辑:程序博客网 时间:2024/05/22 09:40
1、百度开发Key的获取,声明一个接口,将该Key放进去
地址:
http://developer.baidu.com/map/android-mobile-apply-key.htm
百度开发者平台
申请Key教程
开发指南/配置教程
API Key:1A4A4ABEFBEECD8C17DEE880C4EA69B9607020B5
CanstantValue.java
package huaxa.it.map;import android.R.string;/** * @项目名: BaiduMap * @包名: huaxa.it.map * @类名: CanstantValue * @创建者: 黄夏莲 * @创建时间: 2016年11月28日 ,上午11:35:23 * * @描述: TODO */public interface CanstantValue{ String KEY = "1A4A4ABEFBEECD8C17DEE880C4EA69B9607020B5";}
2、添加引擎到Andoid工程中
添加jar包:baidumapapi_v2_1_2.jar和locSDK_3.1.jar
添加.so文件:拷贝libapp_BaiduMapApplib_v2_1_2.so、liblocSDK3.so、libvi_voslib.so到libs\armeabi目录下
注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
3、在Manifest.xml声明使用权限
声明使用权限<!-- 这个权限用于进行网络定位--><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>
4、实现一个helloworld项目:
此处用到3个类:BMapManager 、MapView 、MapController
1. 实现布局。
2. 在setContentView()之前执行KEY校验。此中需要查看SDK的index.xml帮助文档,查看各个类的功能。
3. 实现缩放功能,添加缩放控件。
4. 设置地图中心点。
实现如下:
HelloWorld.java
package huaxa.it.map;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.map.MKEvent;import android.app.Activity;import android.os.Bundle;import android.widget.Toast;/** * @项目名: BaiduMap * @包名: huaxa.it.map * @类名: HelloWorld * @创建者: 黄夏莲 * @创建时间: 2016年11月28日 ,下午12:09:53 * * @描述: TODO */public class HelloWorld extends Activity{ private BMapManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // KEY的校验 initManager(); setContentView(R.layout.common); } /** * 初始化地图引擎 */ private void initManager() { manager = new BMapManager(getApplicationContext()); /** * public boolean init(String strKey, MKGeneralListener listener) 参数: * strKey - 申请的授权验证码 listener - * 注册回调事件,该接口返回网络状态,授权验证等结果,用户需要实现该接口以处理相应事件 */ // KEY的校验 manager.init(CanstantValue.KEY, new MKGeneralListener() { //MKEvent存放常量 @Override public void onGetPermissionState(int iError) { // TODO 授权验证 if(iError == MKEvent.ERROR_PERMISSION_DENIED) { Toast.makeText(getApplicationContext(), "授权验证失败", Toast.LENGTH_SHORT).show(); } } @Override public void onGetNetworkState(int iError) { // TODO 网络状态 if(iError == MKEvent.ERROR_NETWORK_CONNECT) { Toast.makeText(getApplicationContext(), "网络无连接", Toast.LENGTH_SHORT).show(); } } }); }}
common.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/MapView" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
Manifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="huaxa.it.map" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <!-- gps --> <!-- 这个权限用于进行网络定位 --> <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> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" ><!-- <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> --> <activity android:name=".HelloWorld" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
实现结果:校验失败:
改正方法:http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=106461
实现效果:
实现缩放功能:
HelloWorld.java
package huaxa.it.map;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.map.MKEvent;import com.baidu.mapapi.map.MapController;import com.baidu.mapapi.map.MapView;import com.baidu.platform.comapi.basestruct.GeoPoint;import android.app.Activity;import android.location.Geocoder;import android.os.Bundle;import android.widget.Toast;/** * @项目名: BaiduMap * @包名: huaxa.it.map * @类名: HelloWorld * @创建者: 黄夏莲 * @创建时间: 2016年11月28日 ,下午12:09:53 * * @描述: TODO */public class HelloWorld extends Activity{ private BMapManager manager; private MapController controller; private MapView mapView; private int latitude = (int) (23.039 * 8E6);//经度 private int longitude = (int) (113.4042E6);//纬度 private GeoPoint geoPoint = new GeoPoint(latitude, longitude);//广东工业大学坐标 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // KEY的校验 initManager(); setContentView(R.layout.common); init(); } private void init() { // 地图的缩放级别(版本V2.X:3-19,V1.X:3-18级放大) // V2.X与V1.X的主要区别: // ①修改了地图文件的格式(节省了空间) // ②放大级别,增加3D(18、19)的特效 // MapController管理某个具体的MapView,缩放、旋转、移动 mapView = (MapView) findViewById(R.id.MapView); controller = mapView.getController(); controller.setZoom(12);// 设置地图的缩放级别。 这个值的取值范围是[3,19]。 mapView.setBuiltInZoomControls(true);// 设置是否启用内置的缩放控件。 // 如果启用,MapView将自动显示这些缩放控件。 controller.setCenter(geoPoint);//设置地图中心点 } /** * 初始化地图引擎 */ private void initManager() { manager = new BMapManager(getApplicationContext()); /** * public boolean init(String strKey, MKGeneralListener listener) 参数: * strKey - 申请的授权验证码 listener - * 注册回调事件,该接口返回网络状态,授权验证等结果,用户需要实现该接口以处理相应事件 */ // KEY的校验 manager.init(CanstantValue.KEY, new MKGeneralListener() { // MKEvent存放常量 @Override public void onGetPermissionState(int iError) { // TODO 授权验证 if (iError == MKEvent.ERROR_PERMISSION_DENIED) { Toast.makeText(getApplicationContext(), "授权验证失败" + MKEvent.ERROR_PERMISSION_DENIED, Toast.LENGTH_SHORT).show(); } } @Override public void onGetNetworkState(int iError) { // TODO 网络状态 if (iError == MKEvent.ERROR_NETWORK_CONNECT) { Toast.makeText(getApplicationContext(), "网络无连接", Toast.LENGTH_SHORT).show(); } } }); }}
- 百度地图:第一篇HelloWorld
- ASM第一篇【HelloWorld】
- Struts2-第一篇-HelloWorld
- 第一篇博客,HelloWorld
- 自己的第一篇博文 百度地图内存溢出
- android 百度地图路径规划问题(第一篇)
- 第一篇博客关于百度地图小问题
- 百度地图:第二篇HelloWorld
- Apache CXF 第一篇:HelloWorld
- Spring框架第一篇HelloWorld
- Android百度地图HelloWorld运行异常处理
- 百度地图总结第一篇--环境集成和Hello Baidu_Map实现
- 百度地图学习第一篇-项目的搭建和配置
- 百度地图学习第一篇-项目的搭建和配置
- 第一篇:tomcat与helloworld篇
- 我的第一篇blog:HelloWorld
- [windows phone自学笔记] 第一篇 HelloWorld!
- SpringBoot入门系列之第一篇:HelloWorld
- Mark一下linux下较快的软件源
- YII些项目之Javascript
- LayerMask 的使用
- 测试配置工具-ExpanDrive
- 润乾报表v4-导出xml文件
- 百度地图:第一篇HelloWorld
- mysql中tinyint、smallint、int
- cdn内容分发网络介绍
- 九、Nio之DatagramChannel
- 基于stm32单片机的可调节pwm输出
- Visualizing and Understanding Convolutional Networks
- NSTimer循环引用不释放问题
- 关于EL表达式中requestScope和param区别
- 加密工具GPG入门教程