esri-leaflet入门教程(1)-esri leaflet介绍

by 李远祥

关于leaflet,可能很多人比较陌生,如果搭上esri几个字母,可能会有更多的人关注。如果没有留意过leaflet的人,稍微百度一下,也就知道,它是一个轻量级的地图js框架。leaflet的种种好处,似乎已经有不少人写过相关的文章,这里就不多累赘去说明了。关于专业GIS,放在整个IT技术来说,关注的人其实并不多,大部分IT从业者一般会跟消费级的地图应用会扯上一些关系,基本上就是调用百度、谷歌、高德等在线地图,并在此之上进行一些应用开发。而专业的WebGIS应用开发人员,一般会跟着如Esri这些巨擘走,进而投身非常专业的ArcGIS JS API 开发中区。

关于WebGIS的开发,笔者也是经历了非常多的技术变革了,从最早的ArcIMS Viewer,到后来痛苦的ArcGIS ADF,ArcGIS JavaScript /Flex API 等,无一不是重量级WebGIS框架或API,其中也有着不短的学习和适应过程。前几年比较流行的Flex和silverlight富客户端开发,随着Adobe、微软这些厂家断奶以及各种浏览器不在默认支持,已经逐渐失去了往日的风采,而esri也是跟着潮流,flex、silverlight 开发API已经停止更新,所以,如果想继续从事专业领域上的WebGIS开发,似乎也只剩下JavaScript这一项技术了。

当然,关于Web地图的前端框架,目前也有不少比较优秀的,通用领域上的Openlayers,异军突起的leaflet,也都是不错的选择。当然,也还有一部分回到服务和前端一体化的sharpmap(好多年前的技术了)。不管怎样,条条大路通罗马,达到目的就好。在专业领域上,应该更多人使用的是ArcGIS JavaScript API进行开发,毕竟背后有着Esri厂家的支持,熟悉ArcGIS软件体系的开发者在这方面似乎也是得心应手。但是,ArcGIS JavaScript API从第一版到现在,迭代了好几年了,始终都没有摆脱一个庞然大物--dojo!很多js开发人员也是对dojo非常头痛,尽管它也是一个非常优秀的js框架,但在框架方面,毕竟更多人还是比较倾向于jquery吧。

笔者也算是ArcGIS产品的死忠了,毕竟专业GIS领域上,ArcGIS产品还是口碑非常好的,也是产品结构非常清晰,API接口功能也非常齐全。但一旦到了使用JavaScript API进行开发,关于dojo部分还是需要慢慢的切换。也许Esri也意识到这个问题,也正在做一些非常积极的措施,例如,在其GitHub 上 http://esri.github.io/ 可以看到一些与开源JS框架的对接方案,排在第一位的自然就是leaflet了。

所以,笔者也是比较好奇,与leaflet对接之后,到底会比传统的ArcGIS JavaScript API会有什么样的一些变化。点击esri-leaflet进去之后,就会跳转到https://github.com/Esri/esri-leaflet 中,当然,这也是开发者比较喜欢的方式,同时在esri github 的主页上,也可以看到第一行的官方网址 http://esri.github.io/esri-leaflet/  这就是官方权威的网址,在这里面可以找到关于esri-leaflet的api、在线帮助、实例代码等。当然,也可以看到主页入口处的Leaflet官网链接。

总体来说,内容还是比较全面。如果没有Leaflet基础,可以直接到http://leafletjs.com/ 官网上去看看,多了解下这个webgis的框架。在这里面,可以找到非常多的帮助和扩展的。

leaftlet本身的扩展也是非常多的,Esri的ArcGIS支持只是其中的一个扩展,也有国人在其加入了天地图、MapABC、高德等的扩展,可以在其Plugins里面找到,例如在底图支持方面,可以看到其中一项支持中国的常用底图,至于这个名叫黄涛分享者是谁,我们也不去深究了,先拿过来用再说^_^

说了那么多关于leaflet的好处,主要是为了增强大家对该框架的信心,毕竟有个非常多的企业、组织和个人都对其进行支持,足以证明它的开放性和兼容性。

接下来言归正传,还是回到esri-leaflet上。毕竟是一个轻量级的开发框架,到底跟重量级的ArcGIS JavaScript API有多大的差距,先来看看其API的数量吧。从支持的服务类型和功能来看,应该是支持全线的ArcGIS服务的,尽管有一些是需要插件去支持,但不妨碍与ArcGIS的对接,例如矢量切片图层等,Esri才刚出来没多久,esri-leaflet就可以通过插件的方式去支持了,同时也加入了一些热力图和聚合图的显示方式。

在功能方面,基本上全线支持各种task,当然还包括非常重要的geoprocessing Task (尽管是通过插件方式支持)。可以看到,光是从功能上,基本上没有什么太多的差异,如果没有太多的特殊的要求,一般的WebGIS应用,使用esri-leaflet就可以应付了。

leaflet非常简单易用,就算是esri在其之上做了扩展,也基本上保留着其基本的调用方式,可以说如果一开始就有使用leaflet做开发的,esri-leaflet就有点类似于适配器一样,通过简单的适配就可以兼容ArcGIS的服务和功能了。

关于esri-leaflet的介绍就到这里,下一章节将会介绍一下如何使用esri-leaflet去搭建基于ArcGIS的应用。

esri-leaflet入门教程(1)-leaflet介绍相关推荐

  1. leafLet入门教程兼leafLet API中文文档参考

    leafLet官方文档链接(英文原版):https://leafletjs.com/reference-1.3.4.html#marker-bindpopup 文章目录 leafLet教程 一.简单入 ...

  2. leafLet入门教程兼leafLet API中文文档参考

    英文文档参考:https://leafletjs.com/reference-1.3.4.html#popup 博客参考:https://blog.csdn.net/qq_36595013/artic ...

  3. Leaflet入门:利用leaflet展示各个国家的某些数据

    最近做了个利用leaflet展示各个国家的某些数据的网站,现把入门过程记录下来.最终效果图: leaflet 网站 官方网站: http://leafletjs.com/ 本入门教程主要是做的 Int ...

  4. kettle详细使用oracle教程,Kettle入门教程(详细介绍控件使用方法)_kettle详细使用教程,kettle控件介绍...

    Kettle入门教程(详细介绍控件使用方法)本手册主要是对Kettle工具的功能进行详细说明以及如何操作该系统,适合所有使用该系统的人员. 服务查询 数据库查询 数据库连接 流查询 调用存储过程 转换 ...

  5. RNN 入门教程 Part 3 – 介绍 BPTT 算法和梯度消失问题

    转载 - Recurrent Neural Networks Tutorial, Part 3 – Backpropagation Through Time and Vanishing Gradien ...

  6. WPF真入门教程23--MVVM简单介绍

    在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界 ...

  7. 浩辰3D设计软件新手入门教程:用户界面介绍

    对于3D设计工程师来说, 3D设计软件作为日常不可或缺的工具,但是正在日常的设计工作中,为了更好更快的3D建模,最好选择一款好用的软件,浩辰3D软件具备和主流3D设计软件一致的用户界面,让工程师可以直 ...

  8. 易语言入门教程,工作界面介绍

    下图是易语言打开后的界面点击新建才能看到窗口和控制台模块命令行的功能选择 下面是界面的介绍: 易语言窗口包含以下内容: 标题栏 菜单栏 工具栏(标准工具栏.对齐工具栏) 工作夹 状态夹 我们在以后的使 ...

  9. 微信小程序开发入门教程-文本组件介绍

    学习小程序开发要从哪开始呢?我们是开始顺序学习官方文档么?如果一开始就从头开始读官方文档,恐怕用不了多久你就放弃了.计算机是一门实践科学,我们学习的目的是为了解决现实问题.要么你想在互联网创业,开发一 ...

  10. 【番外篇1】青龙面板中cron表达式新手入门教程cron的介绍与使用

    cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:* * * * * * * 从左到右依次代表秒.分.时.天.月.周.年,在大部分情况下 ...

最新文章

  1. cmd常见错误及解决方法
  2. java 字符串拼接优化_JAVA字符串拼接效率
  3. 一口气拿了9家公司的offer,年薪50W
  4. 数据库、表、表内容增删改查
  5. 如何利用Shader来渲染游戏中的3D角色
  6. [react] 在react中页面重新加载时怎样保留数据?
  7. 漫步微积分十——复合函数和链式法则
  8. matlab printf格式化输出,如何使用 printf 来格式化输出
  9. springboot+websocket聊天室(私聊+群聊)
  10. python 重命名的方法,python 怎么重命名文件
  11. 添加小度在家显示无法连接服务器,小度在家突然连不上网了
  12. java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...
  13. [家里蹲大学数学杂志]第409期与正弦对数有关的一个积分不等式
  14. unipush+java+个推实现app消息推送
  15. OSPFB笔记-五个报文【超详细】[Hello报文,DD报文,LSR报文,LSU报文,LSAck报文]
  16. 【Java进阶营】阿里架构师手把手教你如何简单快捷地构建Spring应用
  17. 基于QT平台调试rtklib教程
  18. 承前2021,启后2022
  19. 情绪,是人的底层操作系统!掌控情绪,才能掌控人生
  20. 诱骗芯片PD+QC协议XSP06应用案例,支持5V9V12V15V20V

热门文章

  1. 电源管理与驱动设计笔记
  2. java super实例_Java 的 super 学习的一个实例
  3. 如何编写一个抢购bot_如何编写一个SkyWalking插件
  4. 指针02:指针所占内存空间
  5. Angualr 输入文本框监听enter回车键和esc键方法使用(附常用的键盘事件对应的键码)
  6. mfc之标识符的匈牙利记法
  7. macos无法验证此app不包含恶意软件_macOS 平台的一款后门样本(TinyTim)的分析
  8. 30个值得关注的Vue开源项目
  9. 数据分析,怎么做才算到位?
  10. 折线图_手把手教你用ECharts画折线图