• ->对于萌新,你可能需要了解一下这个东西是什么
  • ->对于已经知道要用这个东西的开发者,你可能需要了解一下它的底层机制
  • 不针对大牛。龟速更新ing.
  • 转载注明出处。博客园&CSDN&Bilibili:@秋意正寒

1. 是什么【萌新别跳这一步】

如果非萌新,可以跳过这一段文字。

想要知道ArcGIS API for JavaScript是什么,我大概用以下几条条目描述:

  • 是一个WebGIS二次开发(如果不知道什么是WebGIS请用搜索引擎···)的前端开发包,使用JavaScript语言
  • 出自美国Esri公司
  • 是Esri的ArcGIS Runtime SDK家族中的一员
  • 它不是纯Js写的库

能说明什么呢?

  1. 它能制作在线地理信息系统平台,能做数据分析、空间分析、数据展示等;
  2. 歪果仁写的,英文资料多,虽然中文也有一定数量的资料(博客、书籍等),但是呢,由于Esri更新贼快,一年三四更的,中文资料不一定跟得上速度;
  3. 你可能需要学很多附属的东西,这个API很庞大、很笨重,入门门槛其实不高,但是深入难,前端上,你得知道造这个API的基础——Dojo框架,而Dojo框架由于历史渊源,又来自从属AMD(异步模块定义)规范的RequireJs,要想了解AMD,又不得不去看一些前端和后端的发展史,甚至不可避免要学一些基础的后端。

如果你做好了这些准备,继续。

哦对了,这个API当前有两个大支线,一个是3.x版本,一个是4.x版本;

3.x版本已经很成熟,用于2D的WebGIS二次开发很完美,如果你用的是ArcGIS整套产品;

我重点讲一下类和模块经过重新构造、较为简单的4.x版本,因为它最大的特征是数据视图分离、支持3D,旗帜鲜明对接ArcGIS Pro.

2. 学习此API需要些什么

熟练HTML 5的学习方式、熟练CSS 3的学习方式、能自我学习JavaScript,最好有一定的GIS基础知识、一定的数学知识。

我们在这里约定

ArcGIS API for JavaScript = jsapi/JsAPI/jsAPI...

你可能还要学习的是:

  • NodeJs与npm(在4.7及3.24版本后可能要用npm下载)——作备选项,不学也无所谓
  • webpack——上面那俩如果你学了,这个肯定要学了。
  • 英语

对了,你不需要学怎么配置本地环境(就是说用官方的在线API进行学习就好了),我觉得那些东西网上太多了,查一下就行。有可能遇到跨域的问题,你也可以问搜索引擎,这里更关注的是“入门”而不是全面、细节,我需要把你快速带入门,之后看你的造化。

3. 它怎么来的

它基于一个更复杂的前端框架,Dojo.js。

除了当前两条支线3.x和4.x,其实早些年还有过ArcGIS API for Sliverlight和ArcGIS API for Flex,当然他们已经退休了。

JavaScript那么火热,自然而然选他啦。

由于GIS数据模型的复杂性,和普通的Web信息系统不同,面向对象的机制更合适去描述GIS数据和GIS分析。当时,没有别的好选择,只能选Dojo,因为它支持许多符合WebGIS的特性,如异步操作、面向对象等。

现如今,基于Node的包管理模式的前端开发早已不是什么难事,甚至还冒出了MVVM框架的一大堆火热框架。老迈的Dojo框架不能很好地融入其中,这让人很无奈。

在JsAPI中,地图可以是一个模块,图层可以是一个模块,一个用于空间分析的“东西”也可以是一个模块。类似于桌面编程中的类、继承机制,AMD规范下的RequireJs就产生了。Dojo基于此,定制了一大批的有用模块,能做图表,能做页面,能读写DOM,能做动画,当然是你需要什么模块就调用什么模块,并不需要一次性全部加载。JsAPI基于Dojo,定制了各个方面的模块,从而向开发者提供了一套强大的WebGIS二次开发包。

4. 我必须学它吗?

如果你的项目需求很大,大量用到空间分析、三维展示,频繁交互ArcGIS家族的产品(Server、ArcGIS Desktop等),请学;

如果你的项目需求比较小,也可以学,当然也可以有别的选择:

  • 开源解决方案:Openlayers/Leaflets替代JsAPI。

Openlayers和Leaflets同样是WebGIS二次开发工具包,排名很靠前,二者区别是ol自己提供了封装好的功能模块,而lf则支持插件式,它的插件很多。他们都支持npm方式引入。

  • 当然,为了实现简单的三维GIS,Cesium了解一下;
  • 如果只是3D数据展示,ThreeJs了解一下;
  • 如果数据源缺乏,不想自己做数据服务,对WebGIS标准缺少耐心,可以试试高德地图API、百度地图API等。
  • 如果想全开源,就目前而言3DGIS还是ArcGIS最强外,传统二维WebGIS可以用QGIS代替ArcGIS Desktop、用PostgreSQL代替Geodatabase、用GeoServer代替ArcGIS for Server。

使用JsAPI最强大的特征就是真三维空间分析+无比强大的ArcTools工具箱了。

——————————

好了,可以开始讲了。

哦对了,我学的也不深,请不要用教程二字绑架我,认为我什么都会,我也在学习,希望一起交流,一起进步。

ArcGIS API for JavaScript 入门教程[1] 渊源的更多相关文章

  1. ArcGIS API for JavaScript 入门教程[0] 目录

    随时翻看. 转载注明出处,博客园/CSDN/B站:秋意正寒. Part 1 必看 ArcGIS API for JavaScript 入门教程[1] 渊源 你还真不一定知道这是啥.非得学吗? ArcG ...

  2. ArcGIS API for JavaScript 入门教程[2] 授人以渔

    这篇仍然不讲怎么做,但是我要告诉你如何获取资源. 目录:https://www.cnblogs.com/onsummer/p/9080204.html 转载注明出处,博客园/CSDN/B站:秋意正寒. ...

  3. ArcGIS API for JavaScript 入门教程[4] 代码的骨架

    [回顾与本篇预览] 上篇简单介绍了JsAPI中的数据与视图,并告诉大家这两部分有什么用.如何有机连接在一起. 这一篇快速介绍一下前端代码的骨架.当然,假定你已经熟悉HTML5.CSS3和JavaScr ...

  4. ArcGIS API for JavaScript 入门教程[3] 你看得到:数据与视图分离

    这篇开始正式讲API. 数据和视图分离不是什么奇怪的事情了,这是一个著名的设计--数据与视图分开. 转载注明出处,博客园/CSDN/B站:秋意正寒. 目录:https://www.cnblogs.co ...

  5. ArcGIS API for JavaScript 入门教程[6] 再讲数据——Map类之可操作图层

    [回顾]上篇交代了Map是各种图层(不管是实际上的图层还是由图层构成的对象)的容器,是数据的容器,并不作显示(由视图类绘制).并重点讲解了由图层构成的复杂图层——高程属性ground和底图属性base ...

  6. ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程

    [回顾]前4篇交代了JsAPI的背景.资源如何获取,简介了数据与视图分离的概念与实现,剖析了页面的大骨架. 这篇开始,讲Map类. 转载注明出处,博客园/CSDN/B站/知乎:秋意正寒 目录:http ...

  7. ArcGIS API for JavaScript 入门教程[7] 再讲视图——View的基本属性

    [回顾]上篇花大篇幅讲了ArcGIS Server上的数据服务与部分常用可操作图层的创建关系,还讲了OGC的几个规范. 本篇回到JsAPI 4.x的新特性——视图类中来. 在第3篇讲过,4.x将视图从 ...

  8. arcgis api for js入门开发系列一arcgis api离线部署

    在我的GIS之家QQ群里,很多都是arcgis api for js开发的新手,他们一般都是GIS专业的学生,或者从计算机专业刚刚转向来的giser,他们难免会遇到各种webgis开发的简单问题,由于 ...

  9. 【1】ArcGIS API for JavaScript 4.5/4.6 本地部署

    惭愧,和我的学弟比起来,我所开始接触前端开发,ArcGIS API for JavaScript的时间和深度远远不及于他. 一年之尾,亦是一年之始,我也将正式开始我的博客生涯.本人在校学习并且做项目, ...

随机推荐

  1. java中Scanner类nextLine()和next()的区别和使用方法

    转载:http://blog.csdn.net/zhiyuan_ma/article/details/51592730 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较 ...

  2. Collections.sort自定义排序的使用方法

    Collections.sort自定义排序的使用方法 总结:Collections可以对List进行排序:如果想对Map进行排序,可以将Map转化成List,进行排序: public static v ...

  3. Java Web开发中路径问题小结

     Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...

  4. 企业级web负载均衡完美架构

    转载:揭秘企业级web负载均衡完美架构(图) 2010-07-06 15:16 抚琴煮酒 51CTO.com 字号:T | T 相信很多朋友对企业级的负载均衡高可用实例非常感兴趣,此篇文章根据成熟的线 ...

  5. left join 原理分析

    left join 原理分析 [转贴 2006-11-15 16:19:50]     字号:大 中 小 案例分析 user表:  id   | name --------- 1   | libk   ...

  6. 教你一步步发布一个开源库到 JCenter

    今天想来分享下,如何一步步自己发布一个开源库到 JCenter 这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而已,而是尽可能讲清楚,为什么需要有这个步骤,让大伙知其然的同时还知其 ...

  7. MySQL中遇到的几种报错及其解决方法

    MySQL中遇到的几种报错及其解决方法 1.[Err] 1064 - You have an error in your SQL syntax; check the manual that corre ...

  8. python---购物车

    购物车功能如下: 1. 输入收入多少,购买商品 2. 打印购物清单,根据清单选择商品: 3. 结算,打印购物清单及总金额 # -*- coding:utf-8 -*- # LC goods=[[1,' ...

  9. jenkins构建基于gradle的springboot项目CI采坑(采用jar方式部署)

    试了一堆插件,最后用的还是 publish over SSH jenkins基本配置不多说了,就是配置一下git仓储,配置一下gradle执行命令 clean bootRepackage 之后执行Se ...

  10. 面向对象的WebAPI框架XXL-HEX

    <面向对象的WebAPI框架XXL-HEX>    一.简介 1.1 概述 XXL-HEX 是一个简单易用的WebAPI框架, 拥有 "面向对象.数据加密.跨语言" 的 ...