摘要: java
由于工做的缘由因此须要用到高德地图,因此开始记录一下。目前已经完成了开发,包括高德地图的缩放功能,逆地址编码,地图底部显示数据等。今天开始从头记录一下,你们之后仍是不要写完在记录了,真的会忘记啊!!!android
1、申请和配置
首先来看一下申请和配置的流程:api
一、申请注册成为开发者。网络
你们就直接像平时同样到高德地图的开放平台注册帐号密码同样。下面这个是到高德地图的地址。架构
二、申请应用keyide
①首先点开控制台,点击应用管理:(我已经有三个应用了,没有的话这里是显示为空,接着看下面)gradle
②点击右上角建立应用:ui
应用名称根据本身的项目建立就能够了,你们随意呀!,应用类型也是根据本身的填,没有看中的选项那就其余,毕竟咱们但是高要求的(狗头)。点击建立编码
咱们建立好了以后会在应用中显示刚刚建立和已经建立的应用
③点击右上角添加新Key
1:key名称的命名,不知道你就点击右边的命名规范。(此处略过几十个字)
2:服务平台和可以使用服务你们根据本身选。
3:重点讲一下SHA1
3.一、生成申请签名证书文件
首先呢!先查看一下本身的项目有没有一个结尾为jks的文件
没有的话,那就接着看,点击build-Generate Signed Bundle /APK...
就会出现这个(若是项目是没有上面那个结尾的为jks的文件话)。而后点击Create new.. 就会出现下面那个图片。
第一个就是你要存放的路径和写文件的名称,通常是在放项目的最外层,由于后面容易找。而后名为本身Package名。
接着就是密码帐号什么的。你们本身填就能够了。(你们要记住密码哈!不要当鱼。密码咱们下面要用的)
填完点击OK就能够看到这个
而后退出Generate signed APK,由于咱们只是为了生成一个签名证书文件,不是发布正式版的APK。就能够在项目中看到这个咱们刚刚生成的
3.二、生成申请签名证书文件
采用Android studio 的Terminal(你们也能够用系统自带的命令窗后,太麻烦我就不写了)
而后输入如下代码:
keytool -list -v -keystore 这是咱们刚刚建立的签名证书文件的名字
点击enter,
密码就是咱们刚刚设置的密码,输进去(下面的SHA1就是咱们要的东东啦!)
你们把这里填到高德地图Key值的申请中。而后在添加包名就能够生成对应的key值啦!!撒花
接着就是开发啦,撸起袖子加油干
三、在Project中添加配置
3.1.导入jar包。
3.1.1.咱们将里面的jar包放入app/libs文件目录下。
3.1.2.导入jar包
导入jar包的方式有两种:
一种是最暴力的,直接点击File->Sync Project with Gradle Files ,将全部libs目录下的jar包所有导入。
另外一种是咱们选择将哪一个jar包导入。File->Project Structure ->Dependencies -> + ->Jar dependency->找到本身Application Project的路径,->libs中选择本身想要导入的jar包。
3.2.放入.so文件
放入.so文件一样有两种方式:使用默认配置(不修改build.gradle)和修改build.gradle配置。
使用默认配置:将解压缩剩下的(除了jar包)的文件夹放入src/main/jniLibs文件夹下(没有本身建立,在几版本的Android Studio中我记得添加jni就会自动建立这个目录)
修改build.gradle:将文件夹放入刚才的app/libs目录。而后打开build.gradle。
在android下添加以下标签:
android {
defaultConfig {
ndk {
//设置支持的SO库架构(开发者能够根据须要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//3D地图so及jar
compile 'com.amap.api:3dmap:latest.integration'
//定位功能
compile 'com.amap.api:location:latest.integration'
//搜索功能
compile 'com.amap.api:search:latest.integration'
}
3.3.在AndroidManifest.xml中进行配置。
3.3.1.权限声明
//地图SDK(包含其搜索功能)须要的基础权限
3.3.2.在Application标签中加入 meta-data标签
android:name="com.amap.api.v2.apikey"
android:value="你的key值" />
3.3.3.声明Service组件
上面咱们就完成了高德地图的申请和配置了
2、显示地图
因为篇幅的缘由,咱们今天只看一下如何显示地图以及显示定位蓝点。
一、在layout中添加地图容器。
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
2:在activity中初始化地图
public class MainActivity extends Activity {
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.map);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),建立地图
mMapView.onCreate(savedInstanceState);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView.onResume (),从新绘制加载地图
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
mMapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
mMapView.onSaveInstanceState(outState);
}
}
3:显示地图
//定义了一个地图view
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);// 此方法须覆写,虚拟机须要在不少状况下保存地图绘制的当前状态。
//初始化地图控制器对象
AMap aMap;
if (aMap == null) {
aMap = mapView.getMap();
}
结果图片