项目使用的是高德地图的插件,因为百度地图的开发文档我看不懂(其实高德的也看不懂)
首先要注册成为高德的开发者,直接去高德开发平台注册便可。高德开发平台网址: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);// 卫星地图模式
}
}
运行结果如下