在应用开发中,地图开发是经常需要使用的“组件”,国内比较出名的是就是百度地图和高德地图。
此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码。
效果如图:
首先注册高德成为开发者(打开高德地图,点击底部的开发者平台),创建应用,按照要求填写相应信息,如下图:
途中包含了发布版的SHA1安全码和测试版SHA1安全码,两者的值可以看 博客 : Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码
讲的很详细,照做就一定会成功获取的。
首先导入高德的jar包
选中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