Android实现高德地图key值申请和地图显示

摘要: 

       因为工作的原因所以需要用到高德地图,所以开始记录一下。目前已经完成了开发,包括高德地图的缩放功能,逆地址编码,地图底部显示数据等。今天开始从头记录一下,大家以后还是不要写完在记录了,真的会忘记啊!!!

一、申请和配置

首先来看一下申请和配置的流程:

1、申请注册成为开发者。

大家就直接像平时一样到高德地图的开放平台注册账号密码一样。下面这个是到高德地图的地址。

高德地图的开发平台

2、申请应用key

①首先点开控制台,点击应用管理:(我已经有三个应用了,没有的话这里是显示为空,接着看下面)

②点击右上角创建应用:

应用名称根据自己的项目创建就可以了,大家随意呀!,应用类型也是根据自己的填,没有看中的选项那就其他,毕竟我们可是高要求的(狗头)。点击创建

我们创建好了之后会在应用中显示刚刚创建和已经创建的应用

③点击右上角添加新Key

1:key名称的命名,不知道你就点击右边的命名规范。(此处略过几十个字)

2:服务平台和可使用服务大家根据自己选。

3:重点讲一下SHA1

3.1、生成申请签名证书文件

首先呢!先查看一下自己的项目有没有一个结尾为jks的文件

没有的话,那就接着看,点击build-Generate Signed Bundle /APK...

就会出现这个(如果项目是没有上面那个结尾的为jks的文件话)。然后点击Create new.. 就会出现下面那个图片。

第一个就是你要存放的路径和写文件的名称,一般是在放项目的最外层,因为后面容易找。然后名为自己Package名。

接着就是密码账号什么的。大家自己填就可以了。(大家要记住密码哈!不要当鱼。密码我们下面要用的)

填完点击OK就可以看到这个

然后退出Generate signed APK,因为我们只是为了生成一个签名证书文件,不是发布正式版的APK。就可以在项目中看到这个我们刚刚生成的

3.2、生成申请签名证书文件

采用Android studio 的Terminal(大家也可以用系统自带的命令窗后,太麻烦我就不写了)

然后输入以下代码:

keytool -list -v -keystore 这是我们刚刚创建的签名证书文件的名字

点击enter,

密码就是我们刚刚设置的密码,输进去(下面的SHA1就是我们要的东东啦!)

大家把这里填到高德地图Key值的申请中。然后在添加包名就可以生成对应的key值啦!!撒花

接着就是开发啦,撸起袖子加油干

3、在Project中添加配置

首先到高德地图的开发文档看看

3.1.导入jar包。

下载对应的文件我们需要添加的jar包;https://lbs.amap.com/api/android-sdk/download/。根据需求选择要添加的功能。

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(包含其搜索功能)需要的基础权限
     
<!--允许程序打开网络套接字-->
<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" /> 

3.3.2.在Application标签中加入 meta-data标签

<meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="你的key值" />

3.3.3.声明Service组件

<service android:name="com.amap.api.location.APSService"/>

上面我们就完成了高德地图的申请和配置了

二、显示地图

由于篇幅的原因,我们今天只看一下如何显示地图以及显示定位蓝点。

1、在layout中添加地图容器。


<com.amap.api.maps.MapView
        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();        
}

结果图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值