项目使用的是高德地图的插件,因为百度地图的开发文档我看不懂(其实高德的也看不懂)
首先要注册成为高德的开发者,直接去高德开发平台注册便可。高德开发平台网址:https://lbs.amap.com/
基本的配置高德开发平台上也比较清晰。在这里我记录一种sha1值的获取方式(个人认为比较简洁)
首先win+R输入cmd打开命令提示符
然后输入 cd .android
然后输入keytool -list -v -keystore debug.keystore
此时要求输入密码一般默认密码是android此时就会出现sha1的值了,我们在填写高德开发平台添加key时会让输入开发和调试的sha1的值,一般在不上架的情况下填写一样的就好,下面附图
填写完信息后我们开始配置本地的androidstdio
我们需要在高德地图网站上下载一些sdk,网站https://lbs.amap.com/api/android-sdk/download/
将下载下来的文件拷贝到我们的项目中,位置如下,jar包放在libs下其他文件放在jniLibs下,没有这个目录就新建一个
添加完文件点击android stdio上面倒数第四个图标将我们导入的jar包添加一下。
在AndroidManifest中添加如下代码
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.lastgps"> <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" /> <!--允许程序访问CellID或WiFi热点来获取粗略的位置--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.amap.api.v2.apikey" android:value="申请的key值"> </meta-data> </application> </manifest>
在project的build.gradle中配置repositories,添加仓库地址
allprojects { repositories { jcenter() // 或者 mavenCentral() } }
在工程中的build.gradle中配置dependencies代码如下(3d地图,具体看高德开发文档)
android { defaultConfig { ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" } } }
此时基本的配置就完成了
===============================================================================================================================================================
接下来在手机上显示地图(以下代码来自高德地图开发文档)
layout文件中添加一个mapview的控件
<com.amap.api.maps.MapView android:id="@+id/mymapview" android:layout_width="match_parent" android:layout_height="match_parent"></com.amap.api.maps.MapView>
如果没有这个控件那就是本地的包还没有导入
在java代码中代码如下
package com.example.lastgps; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.amap.api.maps.AMap; import com.amap.api.maps.MapView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapView mapView = (MapView) findViewById(R.id.mymapview); mapView.onCreate(savedInstanceState);// 此方法必须重写 AMap aMap = mapView.getMap(); aMap.setTrafficEnabled(true);// 显示实时交通状况 //地图模式可选类型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 卫星地图模式 } }
运行结果如下