Android引用SDK包實現高德地圖展示

一、準備工作

  • 注冊高德地圖開放平臺


    ????????注冊過程我就不多說了,挺簡單的,需要登錄,然后注冊成為開發者,還需要支付寶認證、手機號碼驗證、郵箱驗證挺多的,但是速度很快。基本上隨時驗證隨時注冊成功。

  • 新建應用


  • 新建Android項目


    項目建好了我們現在來繼續完成搞得地圖中的配置。
  • 應用配置


    安全碼就是一個簽名,我們能夠在系統目錄-->用戶目錄-->.android-->debug.keystore

    找到這個以后,我們Win+R打開運行,輸入cmd打開終端窗口:

    在終端中輸入命令where keytool,查看一下自己的keytool有沒有在環境變量中配置好,沒有配置的話,先去環境變量中將keytool配置好,這里如何配置我就不講了,可以自行搜索:

    我們進入到存放debug.krystore的文件夾目錄下:

    在命令行中輸入keytool -list -v -keystore debug.keystore:

    輸入:android,一定要是小寫的

    復制SHA1后面的指紋,粘貼到高德控制臺

    還剩下PackageName:




    ok,目前我們關于高德這邊的已經配置好了,接下來我們去下載SDK包
  • 下載SDK包

? ? ??

? ? ? ? 下載完成后將其解壓,分別復制:


到這兒,我們的準備工作已經全部完成了。


二、配置gradle.build

打開libs文件夾選中jar包---->右鍵---->Add as Library...

?等待gradle依賴庫更新如出現下圖表明已經構建成功:


三、編寫地圖布局

1.編寫地圖布局


?

<com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent">
</com.amap.api.maps.MapView><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="進入地圖"android:onClick="GotoMap"tools:ignore="MissingConstraints" />

2.聲明權限

<!--允許程序打開網絡套接字--><uses-permission android:name="android.permission.INTERNET" /><!--允許程序設置內置sd卡的寫權限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允許程序獲取網絡狀態--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--允許程序訪問WiFi網絡信息--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--允許程序讀寫手機狀態和身份--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--用于進行網絡定位--><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.CHANGE_WIFI_STATE"></uses-permission><!--用于讀取手機當前的狀態--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!--用于申請調用A-GPS模塊--><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>

3.設置高德key


4.設置高德地圖SDK隱私合規

注意:這里非常重要,我在這里踩過大坑,按照以往經驗是不需要設置這些的,甚至整個開發步驟也并非如此,現在的開發步驟是最新的高德地圖官方指導,步驟簡化了,但是開發過程涉及用戶隱私部分的控制被強調了,因此如果步寫這兩段代碼,在整個項目開發完成以后展現出來的可能是白屏,地圖無法顯示出來哦??o(O_O)o······

//設置高德地圖SDK隱私合規
MapsInitializer.updatePrivacyAgree(this,true);
MapsInitializer.updatePrivacyShow(this,true,true);

5.獲取地圖控件

private MapView mapView;
private AMap aMap;

//獲取地圖控件引用
mapView = (MapView) findViewById(R.id.map);
//在activity執行onCreate時執行mMapView.onCreate(savedInstanceState),創建地圖
mapView.onCreate(savedInstanceState);

?6.初始化地圖控制器

//初始化地圖控制器對象
if (aMap == null) {aMap = mapView.getMap();
}

@Override
protected void onDestroy() {super.onDestroy();//在activity執行onDestroy時執行mMapView.onDestroy(),銷毀地圖mapView.onDestroy();
}
@Override
protected void onResume() {super.onResume();//在activity執行onResume時執行mMapView.onResume (),重新繪制加載地圖mapView.onResume();
}
@Overrideprotected void onPause() {super.onPause();//在activity執行onPause時執行mMapView.onPause (),暫停地圖的繪制mapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity執行onSaveInstanceState時執行mMapView.onSaveInstanceState (outState),保存地圖當前的狀態mapView.onSaveInstanceState(outState);
}

7.顯示定位藍點

MyLocationStyle myLocationStyle;
myLocationStyle = new MyLocationStyle();//初始化定位藍點樣式類myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且將視角移動到地圖中心點,定位點依照設備方向旋轉,并且會跟隨設備移動。(1秒1次定位)如果不設置myLocationType,默認也會執行此種模式。
myLocationStyle.interval(2000); //設置連續定位模式下的定位間隔,只在連續定位模式下生效,單次定位模式下不會生效。單位為毫秒。
myLocationStyle.showMyLocation(true);//設置是否顯示定位小藍點,用于滿足只想使用定位,不想使用定位小藍點的場景,設置false以后圖面上不再有定位藍點的概念,但是會持續回調位置信息。
aMap.setMyLocationStyle(myLocationStyle);//設置定位藍點的Style
aMap.getUiSettings().setMyLocationButtonEnabled(true);//設置默認定位按鈕是否顯示,非必需設置
myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE);//連續定位、且將視角移動到地圖中心點,地圖依照設備方向旋轉,定位點會跟隨設備移動。(1秒1次定位)
aMap.setMyLocationEnabled(true);// 設置為true表示啟動顯示定位藍點,false表示隱藏定位藍點并不進行定位,默認是false。

? ? ? ? 至此,功成!!!!!?

四、成果展示

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211615.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211615.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211615.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在C語言中,%d,%c,%f都是什么意思

printf函數調用的一般形式 printf函數是一個標準庫函數&#xff0c;它的函數原型在頭文件“stdio.h”中。但作為一個特例&#xff0c;不要求在使用 printf 函數之前必須包含stdio.h文件。printf函數調用的一般形式為&#xff1a; printf(“格式控制字符串”&#xff0c;輸出表列…

重點車輛安全監測預警技術方案

目錄 1.系統架構 2.詳細設計 2.1駕駛員信息監控 2.1.1駕駛員基本信息管理 2.1.2人車匹配信息 2.1.3駕駛員在線狀態管理 2.2車輛狀態信息管理 2.2.1車輛信息管理 2.1.2車輛在路狀態管理 2.3重點車輛安全監測預警系統云平臺 2.3.1云平臺需求分析 2.3.2 設計思想 2.4.…

urllib 異常、cookie、handler及代理(四)

目錄 一、urllib異常 二、urllib cookie登錄 三、urllib handler 處理器的基本使用 四、urllib 代理和代理池 參考 一、urllib異常 URLError/HTTPError 簡介&#xff1a; 1.HTTPError類是URLError類的子類 2.導入的包urllib.error.HTTPError urllib.error.URLError 3.h…

18 Java與redis集群的通信

1、引入依賴 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.6.3</version></dependency>2、配置 # Redis集群服務器地址 redis.nodesaliyun:6900,aliyun:6901,aliyun:6902,aliyun…

20道計算機網絡面試題

網絡分層 1、說說OSI 七層、TCP/IP 四層的關系和區別&#xff1f; OSI 七層從下往上依次是&#xff1a;物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。一張圖給你整明白&#xff1a; TCP/IP 四層從下往上依次是&#xff1a;網絡接口層、網絡層、傳輸層、應用…

MATLAB - 評估擬合優度、評價擬合效果

系列文章目錄 文章目錄 系列文章目錄前言一、如何評估擬合優度二、擬合優度統計2.1 SSE - 誤差引起的平方和2.2 R 平方2.3 自由度調整 R 平方2.4 均方根誤差 三、MATLAB - 評估曲線擬合度3.1 加載數據并擬合多項式曲線3.2 繪制擬合方程、數據、殘差和預測范圍圖3.3 評估指定點3…

java--Object

1.Object類的作用 Object類是java中所有類的祖宗類&#xff0c;因此&#xff0c;java中所有類的對象都可以直接使用Object類中提供一些方法 2.Object類的常見方法 ①toString存在的意義&#xff1a;toString()方法存在的意義就是為了被子類重寫&#xff0c;以便返回對象具體的…

【Python實戰系列】一文徹底搞懂異常捕獲及處理(理論+源碼)

一、問題 異常處理是Python中一種用于處理程序運行時錯誤的機制。在編寫代碼時&#xff0c;可能會出現各種不可預測的情況&#xff0c;例如除零錯誤、文件不存在、網絡連接問題等等。為了確保程序能夠在出現錯誤時正常運行&#xff0c;您可以使用異常處理機制來捕獲和處理這些異…

K8S學習指南(5)-k8s核心對象namespace

文章目錄 前言什么是Namespace&#xff1f;Namespace的類型創建Namespace使用kubectl創建Namespace示例 切換Namespace查看Namespace在Namespace中部署應用程序使用Namespace進行資源隔離Namespace的權限控制刪除Namespace總結 前言 Kubernetes&#xff08;簡稱K8s&#xff09…

前端知識(十六)——js獲取時間戳方法

1、獲取當前時間 let date new Date() 2、將字符串或者對象直接轉化成時間戳 方法&#xff1a;Date.parse() 注意&#xff1a;不推薦這種方法&#xff0c;毫秒級別的數值被轉化為000 3、通過valueOf()函數返回指定的原始值獲得精準的時間戳值 方法&#xff1a;valueOf()…

git自動更新功能

確認權限 因為一般Linux系統網頁用的www 或 www-data用戶和用戶組,所以要實現自動來去,首先要在www用戶權限下生成ssh密鑰,不然沒有權限,其次就是,要把用root用戶拉去的代碼,批量改成www用戶 1. 給www權限 vi /etc/sudoers www ALL=(ALL) NOPASSWD:/bin/chow…

memset的用法

語法 1.引用所需頭文件 #include<string.h> 2.聲明 void * memset ( void * ptr, int value, size_t num ); ptr 表示要設置的數據的起始地址。如果是要設置整個數組的數據&#xff0c;那ptr就是數組名&#xff08;數組首元素的地址&#xff09; value 表示要設置的值…

【學習筆記】lyndon分解

摘抄自quack的ppt。 這部分和 s a sa sa的關聯比較大&#xff0c;可以加深對 s a sa sa的理解。 Part 1 如果字符串 s s s的字典序在 s s s以及 s s s的所有后綴中是最小的&#xff0c;則稱 s s s是一個 lyndon \text{lyndon} lyndon串。 lyndon \text{lyndon} lyndon分解&a…

c++ 類和對象-封裝意義一

屬性和行為作為整體 示例一&#xff1a;設計一個圓類&#xff0c;求圓的周長 #include<iostream> using namespace std; //圓周率 const double PI 3.14; //設計一個圓類&#xff0c;求圓的周長 //圓求周長的公式&#xff1a;2*PI*半徑 //class代表設計一個類&#xf…

熔池處理Tecplot 360 和CFD-Post做出一樣的效果

熔池處理Tecplot 360 和CFD-Post做出一樣的效果 效果展示詳細講述Tecplot 360實現過程分析實現過程第一步實現過程第二步界面美化注意點效果展示 詳細講述Tecplot 360實現過程 分析 這里主要是將體積分數大于0.5的區域抽取出來,然后顯示溫度場,所以這里主要考慮下面連個思考…

PCL 三維點云中求解圓的三維方程

一、概述 在給出的三維點云中求解擬合圓的三維方程 二、代碼示例 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/sample_consensus/ransac.h> #include <pcl/sample_consensus/sac_model_circle3D.h> // 擬

【貪心算法】 Opponents

這道題寫偽代碼就好了&#xff01; Description Arya has n opponents in the school. Each day he will fight with all opponents who are present this day. His opponents have some fighting plan that guarantees they will win, but implementing this plan requires pr…

【開源】基于Vue+SpringBoot的固始鵝塊銷售系統

項目編號&#xff1a; S 060 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S060&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S060&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 數據中心模塊2.2 鵝塊類型模塊2.3 固…

Mybatis-plus中wrapper的區別

在MyBatis-Plus框架中,LambdaQueryWrapper 和 QueryWrapper 是用于構建查詢條件的兩個主要類。它們都是查詢條件構造器,用于在查詢中生成 WHERE 子句的條件。 QueryWrapper QueryWrapper 是 MyBatis-Plus 3.x 中引入的條件構造器。它的主要特點是使用字符串作為字段名,并支…

python 數字保留小數位數 結果是字符串

precision 2 f{px :.{precision}f} # 自定義動態 f{x:.2f} 數字 轉 字符串 保留dot后面的位數 結果 字符串