高德地图一:环境搭建及显示模式切换
高德地图一:环境搭建及显示模式切换
实现步骤:
1,获取Sha1
(1)获取调试版Sha1:进入AndroidStudio的Terminal中,输入命令keytool -v -list -keystore keystore文件路径
(2)获取正式版Sha1:进入AndroidStudio的Terminal中,输入命令keytool -v -list -keystore …/…/xxx.keystore
2,创建应用获取key:
去高德地图官网注册账号并创建应用。填入包名和keystore的Sha1。
官网:https://lbs.amap.com/api/android-location-sdk/gettingstarted
3,下载并安装开发包(或采用添加依赖的形式)
https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project
4,配置 AndroidManifest.xml 文件
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="您的Key">
</meta-data>
AndroidManifest.xml中配置权限:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
实例:显示地图并切换显示模式
layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="vertical">
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:orientation="vertical">
<Button
android:id="@+id/basicmap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="right"
android:text="标准地图"
android:textColor="@color/black"
android:textSize="12sp" />
<Button
android:id="@+id/rsmap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="right"
android:text="卫星地图"
android:textColor="@color/black"
android:textSize="12sp" />
<Button
android:layout_gravity="right"
android:id="@+id/nightmap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="夜间模式"
android:textColor="@color/black"
android:textSize="12sp" />
<Button
android:id="@+id/navimap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="right"
android:text="导航模式"
android:textColor="@color/black"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
com/example/administrator/MainActivity.java
package com.example.administrator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
public class MainActivity extends Activity implements View.OnClickListener {
private final String TAG = "MainActivity";
private MapView mapView;
private AMap aMap;
private Button navimap;
private Button nightmap;
private Button rsmap;
private Button basicmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);// 此方法必须重写
init();
}
/**
* 初始化AMap对象
*/
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
}
basicmap = findViewById(R.id.basicmap);
basicmap.setOnClickListener(this);
rsmap = findViewById(R.id.rsmap);
rsmap.setOnClickListener(this);
nightmap = findViewById(R.id.nightmap);
nightmap.setOnClickListener(this);
navimap = findViewById(R.id.navimap);
navimap.setOnClickListener(this);
}
@Override
public void onClick(View v) {
{
switch (v.getId()) {
case R.id.basicmap:
aMap.setMapType(AMap.MAP_TYPE_NORMAL);// 矢量地图模式
break;
case R.id.rsmap:
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 卫星地图模式
break;
case R.id.nightmap:
aMap.setMapType(AMap.MAP_TYPE_NIGHT);//夜景地图模式
break;
case R.id.navimap:
aMap.setMapType(AMap.MAP_TYPE_NAVI);//导航地图模式
break;
}
}
}
/**
* 方法必须重写
*/
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mapView.onResume();
}
/**
* 方法必须重写
*/
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mapView.onPause();
}
/**
* 方法必须重写
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mapView.onDestroy();
}
}
转载自:https://blog.csdn.net/zk1382091/article/details/87903975