–mapbox-gl是一个开源、基于webgl技术的前端地图类库–
mapbox-gl提供了两种在地图上创建点数据的方式,一种是上一章讲的符号图层(symbol),另一种是本章讲的marker,这两种方式有各自的适用场景。
符号图层(symbol)是以webgl的形式进行创建加载,数据源是geojson或矢量切片,适合大规模的数据加载,同时数据显示的样式不能过于复杂;
marker是以html dom元素的形式进行创建加载,数据源是坐标点,加载的数据量不能太多,要不然会出现卡顿,不过,数据样式很丰富,完全根据html中排版和css样式进行设计。
地图上创建一个基础的marker:

实现代码:

var marker = new mapboxgl.Marker()
.setLngLat([30.5, 50.5])
.addTo(map);

通过设置marker的element属性,可以设置自定义的html元素,从页面文档中选取,或者通过createElement进行元素创建:

var el = document.createElement('div');
el.className = 'marker';

开发时,过浏览的开发调试,可以发现在页面上加载了一个html元素,在地图移动时,通过css中的translate rotate等变换参数进行变化,达到跟随地图相应的坐标点。

marker的关键属性说明:
options.anchor:锚点位置,marker整个dom和地图上坐标点对齐的方式;
options.draggable:是否可以拖拽,设置为true时,marker能够随着鼠标在地图上拖拽移动;
options.offset:marker和地图上坐标点的像素偏移量;

marker的api说明:
https://docs.mapbox.com/mapbox-gl-js/api/markers/#marker

mapbox-gl开发是讲述如何从基础到实际应用进行地图开发的教程,不定时进行持续进行更新,如有疑问,公众号留言进行讨论。
mapbox-gl官网地址:
https://docs.mapbox.com/mapbox-gl-js/guides/

mapbox-gl开发教程(十):创建marker相关推荐

  1. iOS 9应用开发教程之创建iOS 9项目与模拟器介绍

    iOS 9应用开发教程之创建iOS 9项目与模拟器介绍 编写第一个iOS 9应用 本节将以一个iOS 9应用程序为例,为开发者讲解如何使用Xcode 7.0去创建项目,以及iOS模拟器的一些功能.编辑 ...

  2. Wear OS手表应用开发教程之-创建应用

    本文目录 点击直达 Wear OS手表应用开发系列教程 点击直达 本文标签 `路过的年轻人啊,你是要用左手点个赞呢,还是要右手点个关注呢` 前言: Android Studio自动创建: 创建应用: ...

  3. Abp vnext Web应用程序开发教程 1 —— 创建服务器端

    文章目录 关于本教程 下载源代码 创建解决方案 创建书籍实体 BookType枚举 将图书实体添加到DbContext 将图书实体映射到数据库表 添加数据库迁移 添加样本种子数据 更新数据库 创建应用 ...

  4. Abp vnext Web应用程序开发教程 3 —— 创建、更新和删除书籍

    文章目录 关于本教程 下载源代码 创建新书 创建模态表单 添加"新书"按钮 更新书 EditModal.cshtml.cs 从BookDto映射到CreateUpdateBookD ...

  5. Luat 功能开发教程(十六) LittleVGL

    目录 LittleVGL 简介 控件API说明 实现流程 示例 image控件 Canvas控件 button控件 Arc控件(加载器) page控件 label控件 Slider控件 switch控 ...

  6. Luat 功能开发教程(十八) 阿里云

    目录 阿里云 简介 API说明 实现流程 示例 阿里云操作 产品操作 设备操作 其他说明 LUAT方式连接概述 一机一密LUAT方式连接 一型一密LUAT方式连接 发布消息 订阅消息 OTA升级 常见 ...

  7. Odoo 8.0深入浅出开发教程(十) 附录

    13 附录 13.1 Odoo里老的API _name 点号记法 对应具体SQL表名 _columns { } 表述SQL表头 _defaults 字典值 描述默认值 _inherit _inheri ...

  8. [实例开发教程] Unity3D 创建迷你地图中文教程 附源码

    打开你的 Unity project: 1.选择 GameObject -> Create Other -> Camera, 重命名为你想要的 2.选择 Assets -> Crea ...

  9. jQuery MiniUI 开发教程 TreeGrid 创建TreeGrid(一)

    [b]TreeGrid[/b] [img]http://www.miniui.com/docs/api/images/treegrid.gif[/img] 参考示例: [url=http://www. ...

  10. DuiVision开发教程(1)-创建DuiVision工程

    DuiVision的源代码工程有两种类型:主程序和插件工程,可以通过人工方式创建DuiVision工程,也可以通过Visual Studio向导自动创建工程. 人工创建主程序的方法 1.创建一个基于D ...

最新文章

  1. 光源时间_天哪!你们居然都错了!D65光源,指的是上午还是下午的太阳光?
  2. 谈谈自己的理解:python中闭包,闭包的实质
  3. Nginx:proxy_pass、root、rewrite、alias 的使用详解
  4. 小米手环4今日发布:除了大屏彩显 你期待的全都有了
  5. print输出保存到txt
  6. mysql +hive 安装
  7. 人群与网络:关系的平衡
  8. 医院信息系统培训心得
  9. 【UE4 C++】实现发出伤害与接收伤害
  10. ASUS华硕天选2 FX506H INTELI711代CPU 原装出厂系统恢复原厂系统
  11. LaTex论文排版 | (23) LaTex中的正上、正下标记以及各种箭头符号总结
  12. 计算机辅助设计与制造考试题,计算机辅助设计与制造试题.docx
  13. 【linux】使用systemctl start xxx启动自己的程序|开机启动|守护进程
  14. SpringCloud版本Hoxton SR5 --- 第四讲:Hystrix 熔断、限流(线程)、降级
  15. python爬取肯德基KFC全国门店2021-01-11
  16. Android开发中根据图片名称获取在drawable中的ID
  17. unity 鼠标滑动响应事件
  18. FCC催化剂类有哪些最新发表的毕业论文呢?
  19. 《黑马程序员》 初识黑马
  20. win10如何显示文件扩展名

热门文章

  1. 基于Java实现的武汉地铁模拟系统
  2. 什么高大填空四个字动人_照样子填空填四字成语什么什么什么地想
  3. 叠加原理--戴维南等效电路--第四篇
  4. c++ HDU 1279 士兵队列训练问题
  5. 我的世界服务器皮肤显示不出来,我的世界怎么让皮肤显示,怎么没有皮肤显示不出来怎么办啊...
  6. MPT——cost function推导过程
  7. 通达OA二次开发手册
  8. app卡在启动页面android,app启动一直停留在启动页面
  9. 豆瓣,流行的秘密(解密流行真相)
  10. 分布式系统学习共性总结: