1、背景

由于本人平常高德地图用的不多,头一次做一些高德地图路线规划、点聚合、地图Marker等操作,到现在还用的不是很熟练,遂决定简单记录一下,方便以后使用了可以过来看。

2、高德地图API

参考链接:

地图API示例:细线 ThinLine-线 Line-示例中心-JS API 示例 | 高德地图API

地图覆盖物文档:覆盖物-参考手册-地图 JS API | 高德地图API

信息窗体示例:默认样式信息窗体-信息窗体-示例中心-JS API 示例 | 高德地图API

3、使用心得

地图初始化

首先高德要有一个基准路径:'https://webapi.amap.com/maps?v=1.4.15&key=自己申请的key值&plugin=AMap.MouseTool,AMap.PolyEditor,AMap.DistrictLayer,AMap.MarkerClusterer(这些都是使用高德的API名称)'

设置一个具有宽高的地图容器后,使用

new AMap.Map('地图容器ID', {

zoom:  12 , //级别

center: [lng, lat], // 中心点坐标 : 经纬度

viewMode: '3D',  //使用3D视图

zooms: [3, 16],  //设置地图级别范围

mapStyle: 'amap://styles/xxxxxxxxxxxxxxx',  // 自定义地图主题色

});

此处声明地图保存在自己创建的变量 mapRef 中,然后封装了获取地图示例的方法,每次调用返回当前地图对象,以调用其他API。

标准样式主题-自定义地图样式-示例中心-JS API 示例 | 高德地图API 主题色可以使用官方提供的几种主题,也可以自己进行模块颜色配置,自定义主题。

地图中几个常用方法

1、地图描线 -- Polyline

解释一下代码底部的

setZoomAndCenter(缩放级别,中心点数组) -- 改变地图中心点及缩放级别

多配合与地图中的切换使用,切换场景时自动定位到该场景的中心

如图所示,高德地图提供的描线方法为

AMap.Polyline(opt:PolylineOptions) -- 构造折线对象,通过PolylineOptions指定折线样式

其中:

map: 当前地图实例对象

path:lines:Array,注意,该数据格式必须是[[lng1,lat1],[lng2,lat2],[lng3,lat3].....],即数组包数组的格式,里面每个数组都是一组经纬度组成,以此会画成一条线。

strokeWeight:Number     线条宽度,单位:像素

strokeColor:String    线条颜色,使用16进制颜色代码赋值。默认值为#006600

如代码最后所示,此方法会返回 line (这条线的示例对象),于是在其他文件调用时,可以用一个变量来接收,然后通过 line.on('click',()=>{代码体}) 来为此线段绑定点击事件。

此处只简单介绍常用的属性,及说明最重要的 path 属性数据结构,详情移步:

覆盖物-参考手册-地图 JS API | 高德地图API -- Polyline

2、信息窗体 -- InfoWindow

如图所示,高德地图中信息窗体所使用的 Content 都是元素字符串,写起来稍微有些费劲.

AMap.InfoWindow(opt:PolylineOptionsInfoWindowOptionsPolylineOptions) -- 构造详细信息展示窗体。

isCustom : 是否自定义窗体。设为true时,信息窗体外框及内容完全按照content所设的值添加(默认为false,即在系统默认的信息窗体外框中显示content内容)

autoMove:是否自动调整窗体到视野内(当信息窗体超出视野范围时,通过该属性设置是否自动平移地图,使信息窗体完全显示)

closeWhenClickMap:控制是否在鼠标点击地图后关闭信息窗体,默认false,鼠标点击地图后不关闭信息窗体

content:显示内容,可以是HTML要素字符串或者HTMLElement对象

anchor:信息窗体锚点。

offset:信息窗体显示位置偏移量。默认基准点为信息窗体的底部中心。

此处只简单介绍常用的属性,详情移步:

信息窗体-参考手册-地图 JS API | 高德地图API

但注意,写成 html 字符串,无法很好的去为元素添加点击事件,如果只有一行的代码逻辑体,可以直接写在 htmlString 中,如图

但如果结构体比较多时,有两种方案

方案1:事件委托:通过e.target找到你绑定的具体id,书写逻辑

      document.querySelector('body').addEventListener('click', function (e) {if (e.target.getAttribute('id') == 'closeBtn') {iw.close();}});

方案2:在生命周期中给Window事先注册事件,再将事件传给 ts 文件(htmlString)。

在window对象上注册函数,并在同文件声明这个函数

声明函数

3、点聚合 -- MarkerClusterer  插件

点聚合是一个比较复杂的功能,可以在地图缩放很小时将地图画的点聚合在一起,点击时再放大,这里需要用到高德的工具类 - MarkerClusterer  插件

文档:工具类-参考手册-地图 JS API | 高德地图API

示例:点聚合-点标记-示例中心-JS API 示例 | 高德地图API

过程:

1>首先,地图描点添加 Marker 我使用的是某个图片,需要用到 AMap.Icon(),如下图所示

size:  图标尺寸,默认值(36,36)   //类型为高德提供的Size类型,下面会放链接

imageOffset: 图标取图偏移量。当image中指定了一个大图时,可通过size和imageOffset配合,显示图标的指定范围    //类型为高德提供的Pixel类型,下面会放链接

image: 图标的取图地址。默认为蓝色图钉图片  // String  可以直接导入

imageSize:图标所用图片大小,根据所设置的大小拉伸或压缩图片,等同于CSS中的background-size属性。可用于实现高清屏的高清效果

文档地址:覆盖物-参考手册-地图 JS API | 高德地图API

2>这样,我们就成功的将你想在地图上展示的图标生成好了,下一步为地图添加覆盖物:

position: 点标记在地图上显示的位置,默认为地图中心点

icon:需在点标记中显示的图标。可以是一个本地图标地址,或者Icon对象。有合法的content内容时,此属性无效

label:结构为 {content,offset,direction}  content 为文本标注的内容。direction 为文本标注方位。offset 为偏移量(默认基准点为图标左上角)

angle:点标记的旋转角度,广泛用于改变车辆行驶方向

文档地址:覆盖物-参考手册-地图 JS API | 高德地图API

3>生成覆盖物之后,还可以直接在当前给该覆盖物添加点击事件。(上述写的方式是将线段对象放回,通过on添加,此处是第二种方式,如下图)。

4>循环添加覆盖物,生成一个数组 调用MarkerClusterer方法

AMap.plugin('AMap.MarkerClusterer', () => {

new AMap.MarkerClusterer(mapInstance, firePoint.value, {

gridSize: 80,

maxZoom: 12,

minClusterSize: 1,

});

});

注意 由于 AMap.MarkerClusterer 是一个插件方法,在调用时必须加上

AMap.plugin('AMap.MarkerClusterer', () => { 代码体 });

否则会报错:MarkerClusterer is undefined

具体属性参考文档:工具类-参考手册-地图 JS API | 高德地图API

先写到这里,后续继续补充.....

高德地图API的一些使用心得相关推荐

  1. android开发之高德地图API篇:1、高德地图API之实时定位+轨迹可视化

    TIME:2020年7月6日 高德地图API之实时定位+轨迹可视化 前言: step1.工程的配置 step2.显示地图 step2.实现静态定位: step3.实时定位 step4.实现轨迹可视化: ...

  2. 【高德地图API】汇润做爱地图技术大揭秘

    原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...

  3. 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装

    Map组件设计文档 组件设计目的 分析当前各业务方向(销售端.商城.数据可视化.TMS)内地图相关应用的地图功能使用情况,封装Map组件供给各业务向进行使用. 将高德地图API进行二次封装,降低地图相 ...

  4. 【高德地图API】那些年我们一起开发的APP—即LBS应用模式分享

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:利用地图API都能做些什么应用呢?应用商店里所有的分类,都可以结合上LBS来丰富应用.除了传统的生活服务应用,还有新潮的 ...

  5. 高德地图API路径规划结果清除

    关于高德地图API之路径规划结果的清除(js API) 偶然用到高德地图API做路径规划,在做的过程中发现连续进行不同的路径规划产生的结果是叠加的.如何清除上一次的路径规划呢?开发手册上有一个 cle ...

  6. html高德地图api使用教程,高德地图API如何使用?

    这个很简单,需要先注册一下高德地图开发者,然后创建应用.添加Key,最后通过script标签引入网页,就可以直接使用高德地图API了,下面我简单介绍一下实现过程,主要内容如下: 1.首先,注册高德地图 ...

  7. ios 持续获取定位 高德地图_概述-iOS 定位SDK | 高德地图API

    简介 高德 iOS 定位 SDK 提供了不依赖于地图定位的定位功能,开发者可以无地图显示的场景中便捷地为应用程序添加定位功能. iOS定位SDK提供了单次定位.连续定位.逆地理信息.地理围栏等功能. ...

  8. ios 高德地图加载瓦片地图_IOS 高德地图 API 加载 WMS 服务

    IOS 高德地图 API 加载 WMS 服务 本文主要介绍通过自定义高德地图 MATileOverlay 接口,添加 WMS 服务到地图上.废话少说,先贴代码. 代码 自定义类 WMSTileOver ...

  9. android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API

    产品介绍 天气查询是一个简单的HTTP接口,根据用户输入的adcode,查询目标区域当前/未来的天气情况. 使用API前您需先申请Key,若无高德地图API账号需要先申请账号. 适用场景 需要使用相关 ...

  10. python调用高德地图api 可视化_Python:利用高德地图API实现找房

    记:本项目是在实验楼上看到的,但是上面的代码由于没有及时维护,爬虫文件的代码不再能完整的把所有房源信息爬取下来,我根据最新的58同城官网进行了研究,现在的官网的房源信息已经不是分页的了,而是拉到最后自 ...

最新文章

  1. springboot整合freemarker(转)
  2. cocos对象池的使用
  3. #Hive报错 WritableStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspect
  4. luogu p4767 邮局
  5. 【语义分割】ICCV21_Self-Regulation for Semantic Segmentation
  6. oracle 备份导出,oracle 怎么备份或导入导出表
  7. mysql快速删除大表数据部分数据_mysql删除大表的部分数据
  8. Python3与OpenCV3.3 图像处理(五)--图像运算
  9. html5移动开发入门知识
  10. 可变悬挂与空气悬挂的区别_案例分析:宝马7系F02左后空气悬挂下趴检测与维修...
  11. WIN10什么都没开内存占用率过高, WIN7单网卡设置双IP
  12. concurrent.futures:线程池,让你更加高效、并发的处理任务
  13. 电脑远程连接打印机打印
  14. 利用VS2019对程序进行时间性能分析
  15. Mac OS high Sierra 10.13.6 安装cuda
  16. DTL语言学习(四){% spaceless %}、{% autospace %}和{% verbatim %}标签
  17. 华为云sql工程师评测答题[青铜+白银]
  18. 下一代降维打击黑科技现身中国
  19. SSL双向验证--keytool实现自签名证书
  20. Java反射的基本理解

热门文章

  1. react如何请求amr文件流接口-优化版
  2. 计算机快速格式化u盘启动,制作启动盘格式化u盘
  3. xxl-job的学习使用
  4. “Your Firefox profile cannot be loaded. It may be missing or inaccessible.“
  5. MMKV 组件-快速丶读丶查丶写的sp
  6. “注释”是程序员的自我修养
  7. element 复杂表格,表格合并
  8. android iphone 记事本,苹果手机上有简单实用的便签记事本app吗?
  9. safenet 超级狗 加密狗
  10. java 用户拒绝对代码授予权限_java – @Secured函数获取授权用户的拒绝访问权限...