摘要:本文為第一次導(dǎo)入地圖類,以百度地圖和高德地圖為例,騰訊地圖后續(xù)加入。高德或百度地圖高德或百度地圖高德或百度地圖百度地圖獨有管理地圖生命周期合理管理地圖生命周期。
本文為第一次導(dǎo)入地圖類SDK,以百度地圖和高德地圖為例,騰訊地圖后續(xù)加入。
本文若有不當(dāng)之處以及勘誤,歡迎留言指正。
百度地圖開放平臺
高德開放平臺
步驟 1.獲取KEY在相應(yīng)的國內(nèi)SDK開發(fā)者網(wǎng)站上獲取key
注意:
首次創(chuàng)建應(yīng)用需要輸入的SHA1分兩種:測試版(又稱調(diào)試版,看各平臺的描述),
發(fā)布版的KEY SHA1 值是不同的,發(fā)布 apk 時需要根據(jù)發(fā)布 apk 對應(yīng)的 keystore 重新配置 Key。
by 高德地圖申請開發(fā)密鑰步驟
每個Key唯一對應(yīng)一個APP
by 百度地圖申請開發(fā)密鑰步驟
此步驟通常需要輸入發(fā)布版SHA1,獲取方法:
系統(tǒng)終端獲取
AS中終端獲取
命令:keytool -v -list -keystore
2.配置配置過程通常需要X步,
2.1:將SDK導(dǎo)入工程:添加so文件導(dǎo)入so文件,有兩種方法:
第一種:新建文件目錄,工程會自動加載src目錄下的so文件
路徑:
appsrcmain
新建jniLibs目錄
將各種架構(gòu)的so文件(夾)拷貝進(jìn)其中。
第二種:修改gradle
applibs
新建libs,將各種架構(gòu)的so文件(夾)拷貝進(jìn)其中,之后在
appbuild.gradle中:
android { ... sourceSets{ main{ jniLibs.srcDir "libs" //添加此行,說明so的路徑為該libs路徑,關(guān)聯(lián)所有地圖SDK的so文件 } } ... }
注意:此代碼必須放在android括號內(nèi),否則會報錯:**
Could not get unknown property "jniLibs" for source set "main" of type
參考鏈接:CSDN博客
2.2 添加Jar文件/依賴代碼此處則根據(jù)項目(工程)需求自行填加所需jar。
有兩種方法:
在Project的build.gradle文件中配置repositories,添加maven/jcenter倉庫地址 路徑: appbuild.gradle
1. allprojects { 2. repositories { 3. jcenter() // 或者 mavenCentral() 4. } 5. }
主工程配置依賴,有兩種方式:
將jar放在libs目錄下,之后(以下兩步可選其一):
1.1: jar的每個jar文件:右鍵-Add As Library
1.2: File -Project Structure-Project Structure-module app, 點擊 Dependencies,下方則會自動生成
相關(guān)依賴代碼:
dependencies{ compile files("libs/BaiduLBS_Android.jar") //百度地圖 }
注意:官方文檔中為 compile,最新為implementation,若輸入 compile則會出現(xiàn)以下報錯:
WARNING: Configuration "compile" is obsolete and has been replaced with "implementation" and "api".
建議輸入最新寫法。
第二種:
或者直接使用引入libs下所有jar包的方式:
注意:此方式libs無需導(dǎo)入jar包,即以上方法添加so文件第二正方法不適用。
高德-Android Studio 配置工程:注意說明了這一點,我的高德地圖集成匯總鏈接復(fù)現(xiàn)了這一點,出現(xiàn)以下報錯:
Cause: archive is not a ZIP archive
顯示地圖此處展示需要添加在地圖中的權(quán)限以及key添加的位置,由于地圖不一致,所以只顯示其共同特點。
添加權(quán)限此處列舉出幾種地圖都需要的權(quán)限,可能會有所出入。
路徑
AndroidManifest.xml
初始化地圖
參考鏈接:
百度:Android 地圖SDK-Hello BaiduMap
高德:開發(fā)指南-創(chuàng)建地圖-顯示地圖-第三步,初始化地圖容器
添加主要view路徑
appsrcmainreslayoutactivity_main.xml
此處不同地圖的寬和高,match_parent/fill_parent,至于為什么不一致,需要再探究。
管理地圖生命周期//百度地圖獨有
合理管理地圖生命周期。
路徑
appsrcmainjavaMain.activity.java
public class MainActivity extends Activity { private MapView mMapView = null; //百度地圖 MapView mMapView = null; //高德地圖 @Override protected void onDestroy() { super.onDestroy(); //在activity執(zhí)行onDestroy時執(zhí)行mMapView.onDestroy(),銷毀地圖 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity執(zhí)行onResume時執(zhí)行mMapView.onResume (),重新繪制加載地圖 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity執(zhí)行onPause時執(zhí)行mMapView.onPause (),暫停地圖的繪制 mMapView.onPause(); } @Override //在這兩例中高德地圖獨有 protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity執(zhí)行onSaveInstanceState時執(zhí)行mMapView.onSaveInstanceState (outState),保存地圖當(dāng)前的狀態(tài) mMapView.onSaveInstanceState(outState); } } }
以上注釋引用自高德地圖—第三步,初始化地圖容器,有添加百度地圖第二行初始化代碼。
不同地圖的初始化時間在添加主要view后百度地圖需要初始化之后即可顯示,
高德地圖在管理地圖生命周期后需要初始化地圖即可顯示,以下分別是他們的方法:
百度地圖初始化方法:
SDK引用
public class DemoApplication extends Application { @Override public void onCreate() { super.onCreate(); //在使用SDK各組件之前初始化context信息,傳入ApplicationContext SDKInitializer.initialize(this); //自4.3.0起,百度地圖SDK所有接口均支持百度坐標(biāo)和國測局坐標(biāo),用此方法設(shè)置您使用的坐標(biāo)類型. //包括BD09LL和GCJ02兩種坐標(biāo),默認(rèn)是BD09LL坐標(biāo)。 SDKInitializer.setCoordType(CoordType.BD09LL); } }
高德地圖初始化方法:高德地圖-顯示地圖
//定義了一個地圖view mapView = (MapView) findViewById(R.id.map); mapView.onCreate(savedInstanceState);// 此方法須覆寫,虛擬機(jī)需要在很多情況下保存地圖繪制的當(dāng)前狀態(tài)。 //初始化地圖控制器對象 AMap aMap; if (aMap == null) { aMap = mapView.getMap(); }
注意:最新的Android Studio依照上述方法會報錯:錯誤: 可能尚未初始化變量aMap
則需要修改為:
AMap aMap = null; if (aMap == null) { aMap = mapView.getMap(); } }總結(jié)
在百度地圖的開發(fā)教程中,首先配置,隨后Hello Baidumap一章即可顯示百度地圖在界面中,很方便的表現(xiàn)出了“次序”,所見即所得。
高德地圖文檔則首先配置,其次需要在創(chuàng)建地圖里的顯示地圖中添加相應(yīng)權(quán)限,之后在顯示地圖的過程中再次包含了配置的過程,最后則顯示地圖,
此舉可能是有考慮到開發(fā)者檢查是否正確,但根據(jù)我的鏈接,出現(xiàn)錯誤后直接在論壇上反饋,而并非向下看,高德地圖在這一點上可以標(biāo)注一下。
高德地圖開發(fā)者文檔,則明顯地列舉出了步驟以及網(wǎng)頁,很好的使用了導(dǎo)航邏輯, 使得本文可以順利的使用mardown語言進(jìn)行標(biāo)記以及引用各個部分的鏈接,百度開放平臺可以學(xué)習(xí)一下。
本文同時發(fā)表在我的個人博客:故事熊
歡迎評論留言以及觀光。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76994.html
摘要:本文為第一次導(dǎo)入地圖類,以百度地圖和高德地圖為例,騰訊地圖后續(xù)加入。高德或百度地圖高德或百度地圖高德或百度地圖百度地圖獨有管理地圖生命周期合理管理地圖生命周期。 本文為第一次導(dǎo)入地圖類SDK,以百度地圖和高德地圖為例,騰訊地圖后續(xù)加入。本文若有不當(dāng)之處以及勘誤,歡迎留言指正。 百度和高德地圖開放平臺官網(wǎng)鏈接 百度地圖開放平臺 高德開放平臺 步驟 1.獲取KEY 在相應(yīng)的國內(nèi)SDK開發(fā)者...
閱讀 738·2021-10-09 09:44
閱讀 2005·2021-09-22 15:54
閱讀 5043·2021-09-22 10:55
閱讀 1435·2019-08-29 18:41
閱讀 771·2019-08-29 11:24
閱讀 2099·2019-08-28 18:20
閱讀 1025·2019-08-26 11:51
閱讀 3044·2019-08-26 11:00