1.创建一个项目

2.注册高德开发用户,并来到控制台,点击应用管理->我的应用,然后创建新应用

地址:https://lbs.amap.com/

3. 点击添加

获取SHA1代码(我这里使用的是AndroidStudio):

首先生成jks文件

在java的jdk目录下bin目录下输入命令:keytool -v -keystore 文件路径

然后就会得到以下参数,即发布版安全码SHA1

然后我们进入到C:\Users\Administrator\.android下找到debug.keystore,然后执行如下命令得到调试版安全码SHA1

我们将俩种安全码分别填入,包名为AndroidMainifest.xml中package的值,然后提交

然后就会得到key

4.下载地图开发包

https://lbs.amap.com/api/android-sdk/download/,我选择的是这个定制下载包

将下好的包导入,如图所示

修改build.gradle(app的)添加配置如下,然后点击页面右上角的Sync Now

5.配置

配置AndroidManifest.xml

在application标签下新增

        <meta-dataandroid:name="com.amap.api.v2.apikey" android:value="你申请的key值"/> <!--注意这里的android:name是固定值-->

在manifest标签下新增

<!--允许程序打开网络套接字-->
<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" /> 

配置布局文件,修改activity_main为

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"></com.amap.api.maps.MapView></androidx.constraintlayout.widget.ConstraintLayout>

编辑MainActivity.java为

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//设置对应的XML布局文件MapView mapView = (MapView) findViewById(R.id.map);mapView.onCreate(savedInstanceState);// 此方法必须重写AMap aMap = mapView.getMap();}
}

测试运行:

二、在地图上添加图层

package com.example.maptest;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.Circle;
import com.amap.api.maps.model.CircleOptions;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private MarkerOptions markerOption;private AMap aMap;private MapView mapView;private LatLng latLng=new LatLng(39.761,116.434);Marker marker;Circle circle;private static final int STROKE_COLOR = Color.argb(180, 3, 145, 255);private static final int FILL_COLOR = Color.argb(10, 0, 0, 180);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView = (MapView) findViewById(R.id.map);mapView.onCreate(savedInstanceState);// 此方法必须重写init();}public void init(){Button clearMap = (Button) findViewById(R.id.clearMap);clearMap.setOnClickListener(this);Button resetMap = (Button) findViewById(R.id.resetMap);resetMap.setOnClickListener(this);if(aMap==null){aMap=mapView.getMap();addMrkersToMap();//往地图上添加MarkeraddCircle();}}private void addMrkersToMap(){markerOption=new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.storm_06)).position(latLng).draggable(true);marker=aMap.addMarker(markerOption);}public void addCircle(){CircleOptions circleOptions=new CircleOptions();circleOptions.center(new LatLng(40,116.434));circleOptions.radius(500);circleOptions.strokeWidth(8);circleOptions.strokeColor(Color.BLUE);circleOptions.fillColor(Color.BLUE);circle=aMap.addCircle(circleOptions);}@Overrideprotected void onResume() {super.onResume();mapView.onResume();}@Overrideprotected void onSaveInstanceState(@NonNull Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.clearMap:if(aMap!=null){marker.destroy();circle.destorty();}break;case R.id.resetMap:if(aMap!=null){addMrkersToMap();addCircle();}break;default:break;}}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"></com.amap.api.maps.MapView><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="top|right"android:background="#D000"android:orientation="vertical"android:padding="5dp" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/clearMap"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.5"android:text="clear" /><Buttonandroid:id="@+id/resetMap"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.5"android:text="reset" /></LinearLayout></LinearLayout></FrameLayout></androidx.constraintlayout.widget.ConstraintLayout>

效果图:

三、使用自定义样式的地图

首先登录到高德地图开放平台选择自定义地图

然后选择一种基础模板

然后修改地图样式,如我这里把水系色设为了蓝色

然后右上角保存,然后返回上一页就可以看到自己新建的自定义地图了

然后我们发布,然后我们点击如图

然后我们配置SDK版本信息并下载(这里的SDK版本要和你使用的高德SDK保持一致,比如我使用的是7.6.0的就选择7.0.0到7.7.0版本)

然后我们解压文件得到如图

然后我们在AndroidStudio项目目录下新建assest目录,并把上述俩个文件导入

然后我们在MainActivity中OnCreate函数下加入如下代码

        byte[]  buffer1 = null;byte[]  buffer2 = null;InputStream is1 = null;InputStream is2 = null;try {is1 = getAssets().open("style.data");int lenght1 = is1.available();buffer1 = new byte[lenght1];is1.read(buffer1);is2 = getAssets().open("style_extra.data");int lenght2 = is2.available();buffer2 = new byte[lenght2];is2.read(buffer2);} catch (IOException e) {e.printStackTrace();}finally {try {if (is1!=null)is1.close();if (is2!=null)is2.close();} catch (IOException e) {e.printStackTrace();}}CustomMapStyleOptions customMapStyleOptions=new CustomMapStyleOptions();customMapStyleOptions.setStyleData(buffer1);customMapStyleOptions.setStyleExtraData(buffer2);aMap.setCustomMapStyle(customMapStyleOptions);

测试

四、画多边形、线、圆

//画实心小蓝点
LatLng latLng=new LatLng(35.909736,80.947266);
Circle circle=aMap.addCircle(new CircleOptions().center(latLng).radius(30000).usePolylineStroke(true).strokeColor(getResources().getColor(R.color.red,null)).fillColor(getResources().getColor(R.color.red,null)));
//删除
//circle.remove();//画线段
LatLng A1=new LatLng(35.909736,80.947266);
LatLng B1=new LatLng(35.909736,89.947266);
Polyline polyline=aMap.addPolyline(new PolylineOptions().add(A1,B1).width(5).color(getResources().getColor(R.color.red,null)));
//删除
//polyline.remove();//画矩形区域
LatLng A=new LatLng(40,100);
LatLng B=new LatLng(42,100);
LatLng C=new LatLng(40,102);
LatLng D=new LatLng(42,102);
PolygonOptions polygonOptions=new PolygonOptions();
polygonOptions.add(A,B,D,C);
polygonOptions.strokeWidth(4).strokeColor(getResources().getColor(R.color.red,null)).fillColor(getResources().getColor(R.color.red,null));
Polygon polygon=aMap.addPolygon(polygonOptions);
//删除
//polygon.remove();

五、调整照相机视角

LatLng latlng = new LatLng(39.4,117);//屏幕中心点,39.4,117是北京的坐标
mapView.getMap().moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(latlng, 5, 0, 0)));//v:缩放比例,v1俯视视角角度,v2:旋转角度

Android中集成高德API相关推荐

  1. Android中集成高德地图SDK实现地图定位和导航功能(二)

    我们接着上一篇文章开始继续实现android中集成高德地图的SDK实现地图 定位,搜索,导航的功能 如何让地图在手机上实现呢? 1.配置AndroidManifest 中的权限申请 可以参考官方文档 ...

  2. Android中集成高德地图SDK实现地图定位和导航功能(一)

    一.前期准备工作 1.在高德地图开发者平创建一个自己的项目 名称和应用类型随便填 2.添加Key 1.添加key 2.获取SHA1值 2.1.使用windwos+R 输入cmd 打开控制窗口 输入 w ...

  3. Android中集成Jpush实现推送消息通知与根据别名指定推送附示例代码下载

    场景 经常会有后台服务向Android推送消息通知的情况. 实现 首先在Android Studio中新建一个Android应用 在Project根目录的build.gradle中配置了jcenter ...

  4. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  5. Android 中的 Canvas API

    使用 Android Widget 组中不存在的自定义 UI 元素并想知道它是如何制作的? 这是 Android 中存在的 Canvas API 的魔力.我认为画布这个名字本身就定义了它是艺术家的游乐 ...

  6. Vue中集成高德地图API实现定位与自定义样式信息窗体

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  7. Android 高德地图黑屏定位,Android Fragment集成高德地图黑屏的问题解决方案

    官方给的3.0Map的集成api说了: MapView 是 Android View 类的一个子类,它可以帮助您在 Android View 中放置地图,它是应用程序和窗口部件的基本构建类.MapVi ...

  8. Android中集成支付宝

    手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能. 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫 ...

  9. Android 快速集成高德地图,完美解决

    最终效果是,本App展示地图,点击地图导航,调转三方实现导航. 1.迈出第一步,去创建自己的应用key https://lbs.amap.com/ 1.1创建完应用之后,点击页面的{添加},要求填写自 ...

最新文章

  1. IDEA下使用Jetty进行Debug模式调试【含演示GIF图】
  2. 今天说的是必须要熟练掌握的归并排序
  3. 《潮流时装设计——世界顶级时装CAD制板技巧》——1.6 服装生产中各部位国际代号...
  4. 【Python基础】Python数据分析实战之分布分析
  5. mybatis多排序问题
  6. atomic原子类实现机制_深入了解Java atomic原子类的使用方法和原理
  7. 面经——嵌入式软件工程师ARM体系与架构相关
  8. 阿里巴巴指东打西,PC之后卖盒饭?
  9. POJ-2773 欧几里得 + 二分 + 容斥
  10. rm删除报错 :-bash: syntax error near unexpected token `('
  11. GOTURN——基于深度学习的物体追踪 (OpenCV contrib)
  12. 智慧能源:浅谈新一代信息技术在智慧能源的应
  13. python 取数组最后一个_在numpy数组中查找最后一个值
  14. 行列式与矩阵的初等变换总结
  15. 图文并茂讲VLAN,让你看一遍就理解VLAN
  16. 如何上传大文件(4GB)到虚拟机
  17. 北京城建:建筑业龙头的数字化修炼之路
  18. 左手画方右手画圆代码
  19. 2018年-读书笔记
  20. 阿里云公共DNS安全传输服务介绍(DoH/DoT)

热门文章

  1. matlab制作的表格引入word文档,在Excel表格中插入Word文档的三种方法
  2. 显卡未响应导致程序崩溃 - 解决方案
  3. 局域网内设置共享文件夹
  4. Ebistrategy亦策软件实现达美乐比萨的高效O2O
  5. idea设置注释的颜色
  6. centos 6.8 ssh: connect to host port 22: Connection refused(连接虚拟centos6.8服务器)
  7. 为什么闹钟设置了却不响_手机闹钟不响是怎么回事
  8. linux wubi安装ubuntu,经历:wubi.exe没法成功安装上ubuntu 15.04
  9. 数据恢复工具官方版使用教程
  10. App Store退款你会吗?果粉都要学会的一项技能