百度地图的集成
来源:互联网 发布:zeppelin 修改端口 编辑:程序博客网 时间:2024/05/16 16:01
首先给出SDK的下载地址
下载SDK:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download
然后我们要选择自定义下载
下载的功能如图,也可以按照自己的需求去下载功能模块
然后我们要创建百度地图应用:
SHA 1值我们可以这样获取
打开studio右侧上角的Gradle点击
鼠标双击,会获得sha1值,
包名的话我们可以在自己的build.gradle下获取。
这样我们的应用就创建好了。
从网上下载好,百度提供的model后,要正常使用,要到清单配置文件,配置key属性,是从百度控制台获取,发布版签名从定制app上获取.
如图一个AS是studio的 然后一个是eclipse 这里我们选用自己的工具匹配的。(我得是studio)
1.在这里我选用的是百度地图demo里使用的集成方式
将下载好的Demo的libs包的东西导入自己的工程
2.在项目build.gradle文件android{}内,配置下面一段代码,同步一下gradle文件.
sourceSets { main { jniLibs.srcDir 'libs' }}
上述全部做完后,在AndroidManifest中添加开发密钥、所需权限等信息;
(1)在application中添加开发密钥
<application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> 这个key是在百度控制台配置得到的key,具体可以看0.0百度地图密钥申请</application>
(2)添加所需权限
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><!-- 这个权限用于进行网络定位 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 这个权限用于访问GPS定位 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 用于读取手机当前的状态 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 访问网络,网络定位需要上网 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WAKE_LOCK"/><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
(3)因为在SDK各功能组件使用之前都需要调用SDKInitializer.initialize(getApplicationContext());故我们把该方法放在Application的初始化方法中,新建一个类继承Application,初始化SDKInitializer,进行广播的配置,并在清单配置文件中application配置name属性.属性名就是这个我们新建类名.
public class MyApp extends Application { @Override public void onCreate() { // 注册一个key验证是否正确的广播所者,我们在开发APP时,经常有一些验证,比如网络等,具体流程如下 //创建一个BroadcastReceiver的内部类, BroadcastReceiver receiver = new BroadcastReceiver() { //复写其必须有的方法onReceive,第一个参数上下文,第二个参数是传过来的intent. public void onReceive(Context context, Intent intent) { //参数intent.getAction得到发送过来的Intent里的action动作 String action = intent.getAction(); //创建一个null的字符串. String msg = ""; //进行检查,if判断字符串是否相同,action.equals(),直接用SDKInitializer.SDK_BROADTCAST_ACTION_ST...就可以了 if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) { msg = "Key验证成功!"; }//判断SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR :验证失败 else if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { msg = "Key验证失败!"; }//判断SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR :网络错误 else if (action.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { msg = "网络错误"; } //弹吐司,内容就是字符串. Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); } }; //代码进行广播的注册配置,也可以在清单配置文件里进行配置 IntentFilter filter = new IntentFilter(); //添加过滤条件,IntentFilter对象.addAction();内容就是SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_.... filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK); filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); filter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); //进行广播注册,1.要注册广播类对象 2配置文件IntentFilter对象. registerReceiver(receiver, filter); // 初始化百度地图SDK SDKInitializer.initialize(getApplicationContext()); }}
清单文件的配置(初始化注册)
android:name=".MyApp"
以上就完成了一个百度地图SDK集成到项目中的全部操作.
然后我们要进行布局以及代码的操作。
1.在布局xml文件中添加地图控件
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" />
2.创建地图Activity,管理地图生命周期
public class MainActivity extends AppCompatActivity {private MapView mMapView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//这里我没有调用SDKInitializer.initialize(getApplicationContext());因为在自定义的application的oncreate里已经定义了.setContentView(R.layout.activity_main);//控件初始化initView();//获取对MapVIew的控制类BaiduMapBaiduMap map = mMapView.getMap();//1.0,使用MapVIew对象,控制是否显示MapVIew上面的按钮//设置不显示比例尺控件 该方法的参数是boolen,false是不显示缩放控件mMapView.showScaleControl(false);//设置不显示缩放控件 该方法的参数是boolen,false是不显示比例尺控件 mMapView.showZoomControls(false);}private void initView() { mMapView = (MapView) findViewById(R.id.bmapView); }@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView = null;mMapView.onDestroy(); }@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume(); }@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause(); }}
以上会完成了它的一个效果
然后我么会发现它没有缩放的按钮。
如注释,这两行代码就是设置的按钮,我们可以把他()中的值改为true,就可以显示图片了
完成
- 百度地图的集成
- 百度地图的集成
- 百度地图的集成
- Androi百度地图的集成
- 百度地图的集成过程
- AndroidStudio百度地图定位功能的集成
- 集成百度地图遇到的问题汇总
- 百度地图Sdk集成的使用
- 百度地图的集成和简单使用
- 百度地图的集成——基础
- 集成百度地图的常见错误
- iOS毕业设计—百度地图的集成
- 百度地图集成的那些坑
- 百度地图的集成及使用
- 百度地图集成
- 集成百度地图
- iOS- 集成百度地图
- 百度地图集成
- js/JQUERY json数组除去重复对象
- oracle函数集中总结
- DES加密与解密 &&Url编码与解码的实现
- 测鬼记(上)——上班(五)
- SSH学习小记(2)——注解配置
- 百度地图的集成
- CSS之伪元素和伪类
- Excel调用已有数据利用已经录入的项快速的生成下拉列表
- 奥威Power-BI For金蝶用友标准BI解决方案-销售综合分析
- BZOJ1008【HNOI2008】越狱 <补集转换>
- 如何下载RPM及其依赖
- Excel更改引用方式在绝对引用与相对引用之间快速切换
- HDU4027 Can you answer these queries? (线段树)
- 你手机中的观察者模式