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中文文档参考

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

  2. VB6 GDI+ 入门教程[1] GDI+介绍

    http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[1] GDI+介绍 2009 年 6 月 18 日 17 ...

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

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

  4. ASP.NET MVC4 新手入门教程之一 ---1.介绍ASP.NET MVC4

    你会建造 您将实现一个简单的电影清单应用程序支持创建. 编辑. 搜索和清单数据库中的电影.下面是您将构建的应用程序的两个屏幕截图.它包括显示来自数据库的电影列表的网页: 应用程序还允许您添加. 编辑和 ...

  5. JavaScript 入门教程一 开篇介绍

    一.JavaScript 刚开始是为了解决一些由服务器端进行的验证而开发的前端语言.在宽带还不普及的90年代,当用户辛苦输入很多信息并提交给服务器后,等了漫长的时间,等到的不是提交成功的提示而是某些必 ...

  6. gitbook 入门教程之插件介绍

    插件是 gitbook 的扩展功能,很多炫酷有用的功能都是通过插件完成的,其中插件有官方插件和第三方插件之分. 推荐官方插件市场 https://plugins.gitbook.com/ 寻找或下载相 ...

  7. Flutter开发移动端APP的入门教程及简单介绍

    Dart&Flutter环境搭建 安装 dart SDK 如果只开发移动应用,那么您不需要Dart SDK; 只需安装Flutter. 这里就直接安装 Flutter (dart SDK已经集 ...

  8. 【electronjs入门教程 】electronjs 介绍

    官网地址:https://electronjs.org/ 官网文档地址:https://electronjs.org/docs/ electronjs使用 JavaScript, HTML 和 CSS ...

  9. iMacros 入门教程-基础函数介绍(4)

    imacros的TRAY函数用法 这个函数的功能就是隐藏或显示,当执行imacros文件的时候,出现在特定标签的imacros图标 TRAY HIDE 就是隐藏图标 TRAY SHOW 就是显示图标 ...

  10. iMacros 入门教程-基础函数介绍(3)

    imacros 的 PAUSE 函数用法 这个函数的作用是暂停程序的运行,也就是断点. 对于有时运行到某一步需要输入内容时,或者需要调试时非常有用 如果你混着 pause 和 wait 一起用,那么当 ...

随机推荐

  1. 关于集合set ---STL

    关于集合set的去重复,向集合中插入元素 #include<iostream>#include<set>using namespace std;int main(){ set& ...

  2. jQuery 页面加载事件

    页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成.(可以说:ready 在onload ...

  3. ERP软件数据库覆盖数据恢复成功/重装数据库系统软件,导致同名文件覆盖

    ERP软件数据库覆盖数据恢复成功/重装数据库系统软件,导致同名文件覆盖   [数据恢复故障描述] 上海某酒店ERP软件原来安装在C盘上,用户误操作把软件进行了卸载,发现软件没有了, 但操作之前没有把原 ...

  4. Linux怎样访问Windows共享文件和文件夹

    常常使用Windows的人可能会发现,Windows计算机之前共享资料非常方便,但是有时候想玩玩Linux的时候,如Fedora.Ubuntu.CentOS等,该怎样才能访问Windows计算机上的文 ...

  5. 【转】HTTP响应报文与工作原理详解

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到 ...

  6. u-boot源码下载

    1. 使用git下载u-boot源码  1.1 clone u-boot源码仓库 可以使用git.HTTP.和 rsync协议来下载u-boot源码.你可以使用如下方法来克隆源码树: $ git cl ...

  7. UVa 543 - Goldbach's Conjecture

    题目大意:给一个偶数,判断是否是两个素数的和. 先用sieve方法生成一个素数表,然后再进行判断即可. #include <cstdio> #include <vector> ...

  8. jmeter+ant+jenkins+mac使用HTML Publisher插件后查看html报告显示不正常

    Jenkins安全默认将以下功能关闭: 1.javascript2.html上的内置插件3.内置css或从其它站的css4.从其它站的图处5.AJAX 报告中有javascript,所以显示异常.解决 ...

  9. UVa 10706 - Number Sequence

    题目大意:Sk表示从1到k的字符序列,如S4为1234,现如今有如下的序列S1S2...Sk,形如1 12 123 1234这样的序列,给一个数n,让你去这个序列第n个位置上的数字. 可以构建出一个S ...

  10. 一句话绑定父函数的作用域this

    //如何在返回的函数中绑定父函数的作用域this function bound () { return function () { console.log(this); }.bind(this); } ...