一、準備工作
- 注冊高德地圖開放平臺
????????注冊過程我就不多說了,挺簡單的,需要登錄,然后注冊成為開發者,還需要支付寶認證、手機號碼驗證、郵箱驗證挺多的,但是速度很快。基本上隨時驗證隨時注冊成功。 - 新建應用
- 新建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。
? ? ? ? 至此,功成!!!!!?