百度地图SDK安卓版的使用(上)
本帖最后由 xdfg 于 2021-4-1 11:00 编辑搞了蛮久,终于搞清楚百度地图SDK安卓版的调用方法。记个笔记,防止以后自己忘了……:lol
我目前用的是 Android Studio 3.5.1 版本
JAVA环境1.8.0_261 版本
build.gradle 版本 classpath 'com.android.tools.build:gradle:3.5.1'
gradle-wrapper.properties 版本 distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
我自己写的代码,或者用别人的代码,尽量多描述详细点,希望对广大新手小白友好点。当然老司机可以直接无视。{:1_918:}
为了页面上点击功能偷懒,少写点代码,我用了butterknife黄油刀。你们写的时候随意吧。{:1_918:}
这里说明一下:
导入的 BaiduLBS_Android.jar 包和各种 BaiduMapSDK.so 是有版本对应的,
1.6.0_33 版本的 BaiduLBS_Android.jar 包对应于全系列6_1_0版本的.so包
1.8.0_92 版本的 BaiduLBS_Android.jar 包对应于全系列6_4_0版本的.so包
互换互相调用会报错。{:1_907:}
所以只要你能拿到官网下载的DEMO,或者成功跑起来别人的DEMO,记得同步复制粘贴人家同一版本的jar包和.so包。
排除这个坑都花了我蛮多时间……{:1_907:}
至于你们的手机是高通还是阴忒儿联发科淫威达,要对应用到什么arm64-v8a包、armeabi-v7a包、x86包、x86_64包,自己慢慢匹配吧,实在不清楚就全部加上。
加了.so包后记得加这两句
ndk { abiFilters("armeabi", "armeabi-v7a", "x86", "mips") }
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
然后来修改一下 AndroidManifest.xml 文件
加个联网权限 INTERNET。不加这个,连地名图标路线颜色都加载不出来!
<uses-permission android:name="android.permission.INTERNET" />
再加个扩展卡写入权限。不加这个,显示不了青山绿水卫星图,报错 open failed: EACCES (Permission denied)!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
记得在 application 里面加个 <meta-data ,写入你的 API_KEY。
就算没有去百度官网申请API_KEY,也要写个双引号""空值上去,不然运行不了。写了空值至少能看看运行起来的地图。
http://lbsyun.baidu.com/apiconsole/key,有空可以去这里申请key。
然后去 activity_main.xml 文件里面加个 <com.baidu.mapapi.map.MapView 布局,填满整个屏幕就行了
然后回到 MainActivity 文件,在 setContentView(R.layout.activity_main) 这句话之前加入SDKInitializer.initialize(getApplicationContext())。
不加这句会报错 BDMapSDKException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
而且必写写在 R.layout.activity_main 前面,
或者写在整个安卓项目的BaseApplication类里面,保证一开始启动项目就先运行这句话,避免报错。
写到这里,终于可以真机运行项目了,默认进去就是北京地图,可以放大缩小,可以双指旋转地图。
到这里,我已经用足够少的代码,纯本地纯手打,跑起来百度地图了,应该没有人比我更少了!{:1_918:}
这时候再把那注释掉的6行放出来,仅仅只是为了换个彩色卫星地图而已。
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//MAP_TYPE_SATELLITE卫星图
我目前的手机,安卓5.0、安卓9.0都能直接跑直接显示,至于其他版本的安卓系统,需要动态授权联网、授权SD卡读写权限的,你们自己添加判断吧。
下一篇文章在研究一下如何显示自己当前的定位和多个坐标点显示……{:1_905:}
我毕设跟你这个差不多,只不过用的是百度鹰眼的SDK,做了个跑步的APP 谢谢分享 大神贴,看不懂感谢分享! zwf33 发表于 2021-3-31 22:03
大神贴,看不懂感谢分享!
这是搞安卓才用的。不搞安卓可以无视:lol LZ分析详细; 先mark; 谢谢分享! 测绘专业正需要,先收藏了慢慢研究,谢谢分享 最近在做gis相关的东西,用的开源osmdroid bankhyx 发表于 2022-3-16 14:01
最近在做gis相关的东西,用的开源osmdroid
没跑成功过osmdroid的demo,偷懒先用百度顶上……:lol
页:
[1]
2