关于申请key等,请参考加载一张简单的高德地图

地图是由多个图层组成,每个图层会显示一部分的地理或交通信息。开发
者可以通过设置 AMap 类,灵活控制图层的显示状态。例如,用户所看到包括
街道、兴趣点、学校、公园等内容的地图展现就是一个图层。实时路况等的展
现也是通过图层来实现的。首先介绍一下比较常用的四种图层:
• 基本地图。
• 自定义图层(这里不做讲解)。
• 实时路况。
• 定位层。

基础地图

3D地图SDK提供三种地图类型:
1.MAP_TYPE_NORMAL
标准地图。地图包含道路、建筑等。

2. MAP_TYPE_SATELLITE
卫星地图。

3. MAP_TYPE_NIGHT
夜景地图(仅3D地图)

AMap是地图的控制类 ,设置基础地图的类型只需要

AMap aMap=mapView.getMap();aMap.setMapType(AMap.MAP_TYPE_NORMAL);

实时路况

AMap  aMap=mapView.getMap();aMap.setTrafficEnabled(true);

定位层

这里涉及到定位需要从高德官网下载定位的相关jar包,这里使用
AMap_Location_V2.5.0_20160526.jar
这个有些繁琐,但都是固定的模板


// 设置激活/关闭定位的监听aMap.setLocationSource(this);
//在地图上标注我的位置aMap.getUiSettings().setMyLocationButtonEnabled(true);
// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
aMap.setMyLocationEnabled(true);
//设置当前位置跟随模式
//参数:
//type - style 总共有三种模式,定位,跟随和旋转(这里为跟随)
aMap.setMyLocationType(AMap.LOCATION_TYPE_MAP_FOLLOW);

LocationSource 方法如下:

public interface LocationSource {
//激活定位void activate(LocationSource.OnLocationChangedListener var1);
//取消定位void deactivate();public interface OnLocationChangedListener {void onLocationChanged(Location var1);}
}

激活定位,但定位逻辑是由——AMapLocationClient来进行的

  @Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {this.mListener = onLocationChangedListener;if (aMapLocationClient == null) {aMapLocationClient = new AMapLocationClient(this);aMapLocationClientOption = new AMapLocationClientOption();//设置定位回调,处理位置改变   aMapLocationClient.setLocationListener(this);
//设置定位模式,推荐使用高精度定位aMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//设置aMapLocationClient的定位Option
aMapLocationClient.setLocationOption(aMapLocationClientOption);
//开启定位
aMapLocationClient.startLocation();}

在AMapLocationListener .onLocationChanged()中处理位置改变

public interface AMapLocationListener {void onLocationChanged(AMapLocation var1);
}
 @Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (mListener != null && aMapLocation != null) {if (aMapLocation.getErrorCode() == 0) {//这里高德地图进行了高度封装,直接就显示系统小蓝点mListener.onLocationChanged(aMapLocation);} else {String errText = "定位失败," + aMapLocation.getErrorCode() + ": "+ aMapLocation.getErrorInfo();Log.e("AmapErr", errText);}}}

注意:获取手机位置属于危险权限,需要进行申请,不熟悉的同学请参考
Android6.0权限申请模型

完整代码如下:

package com.hang.hellomapdemo;import android.Manifest;
import android.annotation.TargetApi;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.maps.AMap;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;public class SimpleLocationActivity extends AppCompatActivity implements LocationSource, AMapLocationListener {MapView mapView;AMap aMap;OnLocationChangedListener mListener;AMapLocationClient aMapLocationClient;AMapLocationClientOption aMapLocationClientOption;final int REQUEST_PERMISSION_LOCATION = 10;@TargetApi(23)public void applyPermission() {ActivityCompat.requestPermissions(SimpleLocationActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_PERMISSION_LOCATION);}@TargetApi(23)@Overridepublic void onRequestPermissionsResult(int requestCode,String[] permissions, int[] grantResults) {switch (requestCode) {case REQUEST_PERMISSION_LOCATION: {if (grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {aMap.setLocationSource(this);//在地图上标注我的位置aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是falseaMap.setMyLocationEnabled(true);//设置定位类型  AMap.LOCATION_TYPE_MAP_FOLLOW:追踪定位aMap.setMyLocationType(AMap.LOCATION_TYPE_MAP_FOLLOW);} else {Toast.makeText(SimpleLocationActivity.this, "没有获取权限,无法完成定位~", Toast.LENGTH_LONG).show();}}break;default:break;}super.onRequestPermissionsResult(requestCode, permissions, grantResults);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mapView = new MapView(this);aMap = mapView.getMap();setContentView(mapView);mapView.onCreate(savedInstanceState);applyPermission();}@Overrideprotected void onResume() {super.onResume();mapView.onResume();}@Overrideprotected void onPause() {super.onPause();mapView.onPause();}@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}@Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {this.mListener = onLocationChangedListener;if (aMapLocationClient == null) {aMapLocationClient = new AMapLocationClient(this);aMapLocationClientOption = new AMapLocationClientOption();aMapLocationClient.setLocationListener(this);aMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);aMapLocationClient.setLocationOption(aMapLocationClientOption);aMapLocationClient.startLocation();}}@Overridepublic void deactivate() {mListener = null;if (aMapLocationClient != null) {aMapLocationClient.stopLocation();aMapLocationClient.onDestroy();}}@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (mListener != null && aMapLocation != null) {if (aMapLocation.getErrorCode() == 0) {mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点} else {String errText = "定位失败," + aMapLocation.getErrorCode() + ": "+ aMapLocation.getErrorInfo();Log.e("AmapErr", errText);}}}}

高德地图——地图图层相关推荐

  1. ArcGIS Javascript API 加载高德在线地图扩展

    利用ArcGIS JavaScript API加载高德在线地图的扩展 /*** Created by WanderGIS on 2015/7/15.*/ define(["dojo/_bas ...

  2. 3、 如何搭建高德离线地图服务

    谷歌(百度.高德)离线地图开发环境搭建 发布时间:2018-01-17 版权: 1.说明 离线地图开发环境支持谷歌地图.百度地图.高德地图等等所有常用地图类型,支持在局域网内的地图部署.二次开发. 2 ...

  3. mapbox 接入高德矢量地图实战

    Mapbox 作为现如今比较流行的地图框架为我们提供了漂亮的个性化地图,在平常的使用过程中可以方便的接入高德/谷歌等矢量切片地图.由于Mapbox地图数据来源于Open Street Map等国外厂商 ...

  4. 使用OpenLayers加载高德离线地图简单实用

    转载请标注:http://blog.csdn.net/qq_25552049/article/details/79453414 概述   OpenLayers是一个用于开发WebGIS客户端的Java ...

  5. 高德离线地图vue-amap的api文档(2):创建地图,撒点等等

    前言: 高德离线地图的使用场景还是很多的,但是他的api在国外,想参考api对网络差的朋友来说不是一件容易的事,对我来说一样,在这里整理下他的api内容. 注:本文是将官网api挪动出来,网好的童鞋想 ...

  6. 【产品分析】高德手机地图产品:未来搜索将从地图开始

    未来的搜索从地图开始.今后的所有商务活动都将通过地图展开,使之成为兵家必争之地.要将移动流量变现为真金白银,地图将发挥至关重要的作用. 目前整个中国电子地图市场目前处于应用成熟期.在多年的快速发展和数 ...

  7. BIGEMAP谷歌(百度、高德)离线地图开发环境搭建

    谷歌(百度.高德)离线地图开发环境搭建 发布时间:2018-01-17 版权: 1.说明 离线地图开发环境支持谷歌地图.百度地图.高德地图等等所有常用地图类型,支持在局域网内的地图部署.二次开发. 2 ...

  8. 高德sdk_联手HERE,高德进军地图海外市场 | CES 2020

    升级为国民出行平台之后,高德地图宣布进军海外市场. 1月8日,高德与HERE 地图共同宣布,基于海外地图及动态信息服务展开合作.HERE地图将为高德提供中国以外地区的地图数据及交通信息等,高德从而可实 ...

  9. 【地图】高德静态地图(页面展示和导出Word)

    目录 一.前言 二.静态地图样例 三.参数 四.页面展示 五.导出Word 一.前言 有时我们会遇到这样的需求:将信息标注到地图上,然后将包含地图和信息的图片展示在页面上或者导出到Word中.这样我们 ...

最新文章

  1. linux socket中 send recv函数的 flags参数
  2. 了解CMS(Concurrent Mark-Sweep)垃圾回收器
  3. 树莓派下安装Django环境
  4. 写给准备找工作的同志们!!!!(转载)
  5. ceph 分布式存储安装
  6. Centos7利用fpm制作rpm包(fpm安装及使用)
  7. 高等组合学笔记(四): 生成函数应用, Catalan问题
  8. java 参数注入_Java通过反射,注入参数
  9. 使用oracle执行txt语句,oracle常用SQL语句.txt
  10. C语言之父辞世引发“分号”悼念
  11. 多张png\jpg图片转化为一张pdf
  12. Java实现国密电子签章(itext+bouncycastle +sm3withsm2)
  13. MySql 报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains....
  14. np.array()函数
  15. 大型网站技术架构-第4篇 架构师
  16. HTML caption文字颜色,HTML caption align 属性 - HTML 颜色参考手册 - 自强学堂
  17. matlab 带通滤波,MATLAB窗函数实现带通滤波器
  18. C语言确定某年星期六,c语言 怎么算某年某月某日是星期几啊?
  19. 【傻瓜图文式】Win系统下制作U盘CLOVER引导+安装原版Mavericks10.9+安装问题总结
  20. MATLAB代码:基于雨流计数法的源-荷-储双层协同优化配置

热门文章

  1. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
  2. 并行优化:OpenMP
  3. 1.0、Python概述
  4. 送给你的一份英语学习资料,请查收!
  5. 使用机器学习模型预测贷款资格
  6. python画界面的插件_ImagePy——UI界面支持开放插件的Python开源图像处理框架
  7. Java POI导出(图片,文字,表格)word文档
  8. java旋转太极图_如何用CSS纯代码画一个旋转的太极图(附代码)
  9. 用python生成excel文件_python通过openpyxl生成Excel文件的方法
  10. 卡巴斯基实验室:2019Q1 IT威胁发展趋势统计报告