Android中配置高德地图和定位蓝点 | 您所在的位置:网站首页 › 高德地图添加定位点怎么添加不了了 › Android中配置高德地图和定位蓝点 |
最近一直在学习android,学到地图这里,遇到的坑也不少,所以就把它分享出来,一和大家一起学习,二为以后写项目看, 一.获取key 1.创建应用首先,您得上(高德地图开放平台官网)注册一个账号,当然,如果有了就直接登录。 其次,就是在应用管理中,创建一个应用,当然如果您之前已经创建了就跳过(下面我是已经创建过) 在创建的应用上点击"添加"按钮,在弹出的对话框中,依次输入应用名名称,选择绑定的服务为“Android平台SDK”,输入发布版安全码 SHA1、调试版安全码 SHA1(可忽略)、以及 Package,如下图所示: 需要注意的是: 1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用上使用会出现服务调用失败。
下面方法是通过Android Studio获取SHA1的 第一步:使用 WIN+R 快捷键,并输入cmd打开控制台工具 第二步:输入命令:keytool -v -list -keystore keystore文件路径。 直接在android项目的build.gradle下面的 在Anroid地图SDK相关下载中下载AAR包 将下载的地图 SDK 的 jar包复制到工程的 libs 目录下 在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示: 在build.gradle中配置 3.1. 在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址 Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加(我这个是自动生成的,不需再配置) 3.2.主工程的build.gradle文件在Project目录中位置: 在创建地图之前,还需配置一些权限(在清单文件中配置) 1. 权限声明在application里面设置 MapView 是 AndroidView 类的一个子类, 用于在 Android View 中放置地图。 MapView 是地图容器。用 MapView 加载地图的方法与 Android 提供的其他 View 一样,具体的使用步骤如下: 1. 首先在布局xml文件中添加地图控件: 2.java文件amapView = findViewById(R.id.map); //获取地图控件 amapView.onCreate(savedInstanceState); // 通过onCreate( )方法创建地图 public class MainActivity extends AppCompatActivity { private MapView amapView; private AMap aMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); amapView = findViewById(R.id.map); amapView.onCreate(savedInstanceState); // 1. 创建地图 } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图 amapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图 amapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制 amapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态 amapView.onSaveInstanceState(outState); } }到这一步时,地图是可以显示出来了,只是它不拥有其他比如定位,缩放等功能,如下: AMap 类是地图的控制器类,用来操作地图。它所承载的工作包括:地图图层切换(如卫星图、黑夜地图)、改变地图状态(地图旋转角度、俯仰角、中心点坐标和缩放级别)、添加点标记(Marker)、绘制几何图形(Polyline、Polygon、Circle)、各类事件监听(点击、手势等)等,AMap 是地图 SDK 最重要的核心类,诸多操作都依赖它完成。 1.初始话AMap对象先创建个全局对象 private AMap aMap;然后判断其是否为null,是的就执行下面这段代码 if(aMap == null){ aMap = amapView.getMap(); } 2. 实现定位蓝点 // 3.实现定位蓝点(显示当前位置) MyLocationStyle myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 //连续定位模式、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。 // (1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE); myLocationStyle.interval(2000); //连续定位模式下的定位间隔(只在连续模式下生效) aMap.setMyLocationStyle(myLocationStyle); aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置。 aMap.setMyLocationEnabled(true);//true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。通过上面的简单配置后,得到的效果如下所示: |
CopyRight 2018-2019 实验室设备网 版权所有 |