在應用開發中,地圖開發是經常需要使用的“組件”,國內比較出名的是就是百度地圖和高德地圖。
此博客講的是高德地圖實現定位和3D地圖顯示,并標注相應位置,話不多說,先看看效果,在上代碼。
效果如圖:
image
首先注冊高德成為開發者(打開高德地圖,點擊底部的開發者平臺),創建應用,按照要求填寫相應信息,如下圖:
image
途中包含了發布版的SHA1安全碼和測試版SHA1安全碼,兩者的值可以看 博客 : Android Studio apk打包,keystore.jks文件生成,根據keystore密鑰獲取SHA1安全碼
講的很詳細,照做就一定會成功獲取的。
首先導入高德的jar包
image
選中jar包右鍵點擊 Add As Library, 在build.fradle中看到如下代碼 表示導包成功
compile files('libs/AMap_Location_V3.0.0_20160922.jar')
compile files('libs/AMap_Search_V3.5.0_20160927.jar')
compile files('libs/AMap_3DMap_V4.1.1_20161019.jar')
注:項目代碼目錄中要添加一個接口文件 JniLibs 的os文件 才能繪制地圖,具體下載源碼查看,就不詳細描述了
AndroidManifest.xml中加入權限
<!--允許程序打開網絡套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 定位 -->
<!-- 用于訪問GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--允許程序設置內置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" />
<!--允許程序訪問CellID或WiFi熱點來獲取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application>標簽中添加Key值信息
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="32c4bc659a111616d9b1196522223206"></meta-data>
<!-- 定位需要的服務 -->
<service android:name="com.amap.api.location.APSService"></service>
如果只實現高德定位可查看: Android Studio 中實現高德定位并獲取相應信息
講的很詳細;有疑問的請留言。
代碼Github: https://github.com/DickyQie/android-map/tree/high-moral-display-map