我们在开发中常常会用到地图功能,那么我们最常用的就是百度地图和高德地图了,今天我们就来看一下高德地图怎么用,我个人认为高德地图封装的还是比较好的,使用起来方便快捷。

首先我们需要到高德开发者平台注册账号,根据API进行操作即可,高德开放平台链接我放在下面:

https://lbs.amap.com/api/android-sdk/summary/

下面主要介绍我个人开发使习惯用的步骤,仅供参考

一、首先是开发前的准备工作,配置工程

1、在高德开放平台下载SDK;

2、添加jar文件:将下载的SDK的jar包复制到工程的libs目录下;

3、添加so库:在main目录下创建文件夹jniLibs(如果有就不需要创建了),将下载的so库复制到这个目录即可;

4、在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址

Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。

配置如下:

allprojects {repositories {jcenter() // 或者 mavenCentral()}}

5、为了保证高德 Android SDK 的功能正常使用,您需要申请高德 Key 并且配置到项目中。

项目的 “AndroidManifest.xml” 文件中,添加如下代码:

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name" ><meta-dataandroid:name="com.amap.api.v2.apikey"android:value="请输入您的用户Key"/>……
</application>

6、配置权限

在AndroidManifest.xml中配置权限:

//地图包、搜索包需要的基础权限
<!--允许程序打开网络套接字-->
<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" /> 

二、工程配置完成,接下来我们进入开发阶段

1、建立.xml布局文件activity_showmap

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android: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"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="20dp"android:orientation="vertical"><Buttonandroid:id="@+id/btn_NORMAL"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="标准地图"/><Buttonandroid:id="@+id/btn_SATELLITE"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="卫星地图"/><Buttonandroid:id="@+id/btn_NIGHT"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="夜景地图"/><Buttonandroid:id="@+id/btn_NAVI"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="导航地图"/><Buttonandroid:id="@+id/btn_BUS"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="车路线地图"/><CheckBoxandroid:id="@+id/cb_traffic"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="显示实时交通状况"/><CheckBoxandroid:id="@+id/cb_building"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="显示3D 楼块"/><CheckBoxandroid:id="@+id/cb_maptext"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="显示底图文字"/></LinearLayout></RelativeLayout>

2、创建显示地图的类文件ShowMapactivity

package com.junto.gdmaptest.activity;import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;import com.amap.api.maps.AMap;
import com.amap.api.maps.AMapOptions;
import com.amap.api.maps.MapView;
import com.amap.api.maps.UiSettings;
import com.junto.gdmaptest.R;/*** Created by WangJinyong on 2018/10/19.*/public class ShowMapActivity extends Activity implements View.OnClickListener {MapView mapView = null;AMap aMap;private UiSettings mUiSettings;Button btn_NORMAL, btn_SATELLITE, btn_NIGHT, btn_NAVI, btn_BUS;CheckBox cb_traffic,cb_building,cb_maptext;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_showmap);//获取地图控件引用mapView = findViewById(R.id.map);//在activity执行onCreat时执行mapView.onCreate(savedInstanceState),创建地图,必需要写的mapView.onCreate(savedInstanceState);initView();}private void initView() {//初始化AMap对象if (aMap == null) {aMap = mapView.getMap();mUiSettings = aMap.getUiSettings();}mUiSettings.setLogoBottomMargin(20);//设置LOGO图标距离页面底部的距离mUiSettings.setZoomControlsEnabled(true);//设置地图默认缩放控件是否显示mUiSettings.setZoomPosition(AMapOptions.ZOOM_POSITION_RIGHT_BUTTOM);//设置缩放控件位置mUiSettings.setScaleControlsEnabled(true);//设置地图默认的比例尺是否显示mUiSettings.setCompassEnabled(true);//设置地图默认的指南针是否显示mUiSettings.setTiltGesturesEnabled(true);// 设置地图是否可以倾斜mUiSettings.setMyLocationButtonEnabled(true);//设置地图默认的定位按钮是否显示aMap.setMyLocationEnabled(true);//是否可触发定位并显示定位层//        mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_LEFT);// 设置地图logo显示在左下方
//        mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_CENTER);// 设置地图logo显示在底部居中
//        mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_RIGHT);// 设置地图logo显示在右下方btn_NORMAL = findViewById(R.id.btn_NORMAL);btn_NORMAL.setOnClickListener(this);btn_SATELLITE = findViewById(R.id.btn_SATELLITE);btn_SATELLITE.setOnClickListener(this);btn_NIGHT = findViewById(R.id.btn_NIGHT);btn_NIGHT.setOnClickListener(this);btn_NAVI = findViewById(R.id.btn_NAVI);btn_NAVI.setOnClickListener(this);btn_BUS = findViewById(R.id.btn_BUS);btn_BUS.setOnClickListener(this);cb_traffic = findViewById(R.id.cb_traffic);cb_traffic.setOnClickListener(this);cb_building = findViewById(R.id.cb_building);cb_building.setOnClickListener(this);cb_maptext = findViewById(R.id.cb_maptext);cb_maptext.setOnClickListener(this);}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图mapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制mapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图mapView.onDestroy();}@Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态mapView.onSaveInstanceState(outState);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.btn_NORMAL://标准地图aMap.setMapType(AMap.MAP_TYPE_NORMAL);break;case R.id.btn_SATELLITE://卫星地图aMap.setMapType(AMap.MAP_TYPE_SATELLITE);break;case R.id.btn_NIGHT://夜景地图aMap.setMapType(AMap.MAP_TYPE_NIGHT);break;case R.id.btn_NAVI://导航地图aMap.setMapType(AMap.MAP_TYPE_NAVI);break;case R.id.btn_BUS://车路线地图aMap.setMapType(AMap.MAP_TYPE_BUS);break;case R.id.cb_traffic://显示实时交通状况aMap.setTrafficEnabled(((CheckBox) view).isChecked());break;case R.id.cb_building://显示3D楼块aMap.showBuildings(((CheckBox) view).isChecked());break;case R.id.cb_maptext://显示底图文字aMap.showMapText(((CheckBox) view).isChecked());break;}}
}

在项目中使用地图的时候需要注意,需要合理的管理地图生命周期,这非常的重要。

这样一个基本地图就完成了。

下一节将介绍高德地图的手势交互功能。

(一)高德地图之基本属性以及显示模式相关推荐

  1. vue 高德地图 不同区域显示不同颜色_高德百度哪家强?苹果Carplay第三方分屏功能评测...

    几天前,苹果公司正式更新了iOS13.4版本.一个小版本系统更新,却让车主群热闹了起来.在这个版本中,苹果正式开放了Carplay分屏显示模式下对第三方地图的支持. 车主们的热情,化为高德地图和百度地 ...

  2. iOS 高德地图(二)(进阶具体使用的细节)

    2019独角兽企业重金招聘Python工程师标准>>> 前面我们配置好了SDK的环境,也在高德的官网中申请了AppKey:de5b39fb2b066ed80c51383bb3a1fe ...

  3. 项目 - Web地图开发【高德地图API】(一)

    导航兔: Web地图开发 [高德地图API] 导航地址 Web地图开发[高德地图API](一) https://qianmoer.blog.csdn.net/article/details/12842 ...

  4. 高德地图Amap开发实践

    一.简介: 高德开放平台是国内技术领先的LBS(Location Based Services,基于位置的服务)服务提供商,拥有先进的数据融合技术和海量的数据处理能力.高德开放平台向广大开发者提供覆盖 ...

  5. 【学习记录】使用高德地图API开发一个简单基础的WebGIS系统(GIS考研院校专题地图网站)

    文章目录 0. 前言 1. 功能设计 2. 数据处理 3. 项目结构 4. 功能实现 4.1. 初始化 4.2. 地图基础功能模块 4.2.1. 放大缩小功能, 图层管理功能 4.2.2. 地图测量功 ...

  6. 使用高德地图展示点位和信息窗体展示数据及播放视频

    使用高德地图做了一个在地图展示点位,并通过点击,显示直播的功能,这个任务是为了之后大屏做准备. 这是一个能展示多个点标记,并在点击的时候弹出信息窗体,并在信息窗体中播放视频,且展示相关信息以及操作事件 ...

  7. vue项目中高德地图的注册及使用

    1.创建应用 点击进入高德地图个人开发的注册:https://lbs.amap.com/dev/id/personal 然后可以登录支付宝进行认证. 注册完毕之后,点击右上角的控制台 点击右上角的创建 ...

  8. Vue中如何使用高德地图

    效果图: 这是高德地图API文档地址:地图的创建-生命周期-示例中心-JS API 示例 | 高德地图API 1.安装 vue-amap安装 1 npm i --save vue-amap@0.5.1 ...

  9. js如何同时打开多个信息窗口 高德地图_高德地图-展示多个信息窗口

    1.问题背景 高德地图,设置小图标,并点击图标显示信息 2.实现源码 高德地图展示多个信息窗口 //初始化地图对象,加载地图 var map = new AMap.Map("containe ...

最新文章

  1. SpringBoot 发送邮件功能实现
  2. 如何让滚动条出现在左边
  3. 通过批处理文件自动安装apk到手机
  4. linux——NFS+AUTOFS服务的基本配置
  5. Qt界面开发(各种控件以及图表)
  6. iis下php 500错误
  7. 图书管理系统html_你的毕业设计是 XX 管理系统吗?
  8. Pandas period_range
  9. eclipse 导入maven项目_一文轻松学会:从GitHub下载项目到eclispe
  10. java 键盘钩子程序
  11. Honeywell全系列打印机驱动interdriver 2019.M-3
  12. PIL (Python Imaging Library) 教程
  13. python判断火车票座位是否靠窗_Python查询火车票(一)
  14. 一文了解AAAI国际会议–附: 各年论文连接
  15. STM32 调整重启电压阈值 BOR
  16. WordPress快速增加百度收录的方法
  17. 排队论,对策论,层次分析法
  18. 路由器芯片和服务器,软路由就是软路由,还是回归它本该有的身份吧。一个越折腾越迷茫者的经历...
  19. WSL是什么? Windows Subsystem for Linux (WSL)
  20. Python合并PDF

热门文章

  1. 数据库常用命令cmd
  2. 数据中台Citus集群压测报告
  3. 转一个常用排序算法的动画效果图
  4. 推荐几本最好的web前端开发技术图书
  5. JAVA记录操作日志步骤
  6. Navicat 直接修改查询数据
  7. OpenCV,OpenGL,DirectX三者的区别
  8. MySQL数据库原理的与安装
  9. 幼儿机器人编程课程介绍
  10. centos GPU tensorflow pytorch 深度学习 环境搭建