百度地圖開發的學習(一)

来源:http://www.cnblogs.com/tianshi-zhu/archive/2016/04/07/5365986.html
-Advertisement-
Play Games

由於項目需求緣故,最近在學習Android地圖的開發,所以就記錄一下學習過程。最近都會陸續更新啦。目前使用百度地圖API的挺多的,所以就先以它為基礎學習一些地圖的調用。 一、AK的申請 與web開發不一樣,Android的地圖項目開發需要申請一個AK才能調用地圖功能。 1.註冊成為百度開發者,正常填 ...


由於項目需求緣故,最近在學習Android地圖的開發,所以就記錄一下學習過程。最近都會陸續更新啦。目前使用百度地圖API的挺多的,所以就先以它為基礎學習一些地圖的調用。

一、AK的申請

與web開發不一樣,Android的地圖項目開發需要申請一個AK才能調用地圖能。

1.註冊成為百度開發者,正常填入信息即可。

2.申請密鑰:

  在http://lbsyun.baidu.com/apiconsole/key中創建應用,現在百度只允許一個key對應一個應用。

  (1)應用名稱:與自己創建項目名一致。

  (2)應用類型:Android SDK

  (3)啟動服務:建議全部勾選,方便項目後續繼續添加功能。

  (4)數字簽名(SHA1):

  在Android studio上有命令行,直接啟動,進入C:\用戶名\.android,輸入keytool -list -v -keystore debug.keystore(密鑰庫命令是android),會出現證書指紋,將SHA1的值粘貼過去即可。

  由於百度推薦的這個方法出來的SHA1可能出現錯誤,百度論壇上許多人包括本人也出現SHA1值錯誤導致的AK匹對失敗,在論壇上看到官方給出一個測試AK的app,它可以獲取所有應用正確的SHA1和包名,我們可以把以前錯誤替換掉。這是網址:http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=85103&extra=page%3D1

  (5)包名:Android studio里在app文件下的build.gradle,applicationId就是包名。

 

 二、下載SDK開發包

1.在網址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

 一鍵下載會把jar包、so文件以及一些demo都包含,後面也比較方便查看。

 2.接下來就是在android studio創建項目,過程就不說啦,建完後添加jar包和so文件

jar包:添加在libs文件下,並右擊右擊里選擇add as library;

 so文件:在main文件下新建jniLibs文件,將各種編譯環境的so文件粘貼進去。

 3.在AndroidManifest.xml 聲明AK和許可權

AK:

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="開發者 key" />  
</application>

許可權(算是比較齊全的許可權):

<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.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_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.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

4.在佈局文件中添加地圖控制項

 

<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true">
</com.baidu.mapapi.map.MapView>



5.應用創建需要初始化SDK,引用全局變數:

 


 6.創建基礎地圖:

在主線程裡面聲明瞭控制項引用就可以使用基礎地圖了,顯示基本的地圖信息。
mMapView = (MapView) findViewById(R.id.bmapView);
然後管理聲明周期,在各個階段同步地圖的狀態。
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}

@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}

@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}


 後面會陸續更新定位的獲取,地圖POI的檢索和一些路線規劃等等。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在iOS應用開發中,有三類視圖對象會打開虛擬鍵盤,進行輸入操作,但如何關閉虛擬鍵盤,卻沒有提供自動化的方法。這個需要我們自己去實現。這三類視圖對象分別是UITextField,UITextView和UISearchBar。 這裡介紹一下UITextField中關閉虛擬鍵盤的幾種方法。 (miki西游 ...
  • ​【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p/3981720.html 聯繫方式:[email protected] 【正文】 一、初識Git: Gi ...
  • 鍵盤的出現於隱藏(解決鍵盤彈出時會覆蓋文本框的問題,代碼實現) #import "ViewController.h" #import "UIView+FrameExtension.h" // 可以自己寫,以後用著方便 #define kDeviceHeight [UIScreen mainScree ...
  • 學習一門新語言最經典的例子就是輸出“Hello World!” 如果你使用過其他語言,那麼看上去是非常的熟悉吧。但比一些c要簡單的多吧 1、不需要導入一些單獨的庫,比如輸入/輸出或字元串處理功能的類庫, 2、不需要在全局範圍內編寫的代碼用於作為入口點程式,所以你不需要 main()函數, 3、不需要 ...
  • 前言:繼上次《IOS開發--微信支付》以來,一直沒有太多時間,更新總結詳細支付這樣的長篇大論,很抱歉。今天,推出支付寶支付的詳細流程。 1、開始下載和查看支付寶支付的Demo。 我們直接進入支付寶的支付平臺參考來進行集成支付寶支付: https://doc.open.alipay.com/doc2/ ...
  • [[XZMusicTool alloc] init]; [XZMusicTool sharedMusicTool]; [tool4 copy]; 以上三種方式都能保證創建出來的對象是同一個. ...
  • 上一節完成的自定義組合控制項,靈活性不夠,控制項的顯示信息上,仿照系統屬性,自定義自己的屬性 上一節組合控制項SettingItemView中有三個控制項,分別是TextView大標題,TextView描述,CheckBox覆選框 自定義屬性 tsh:title=”大標題” 和tsh:desc_on=”小標 ...
  • 列出了隊列組的用法以及和隊列組同樣效果的實現方式;共三種實現方式。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...