学GIS开发,都应该了解的顺序!

01 学习人群

一般来说,学习WebGIS开发的人员有两类。

  • 其中较为庞大的群体是3S(GIS、RS、GNSS)及相关专业的学生;

  • 另一类是计算机专业的学生

2024年陆续也有一些其他专业的人士也对进入WebGIS开发行业感兴趣,这里不多赘述。

这里重点讲述0基础的学生学习WebGIS的方法和路线。

通常,3S专业的学生在大学期间学习了多门相关课程,如:

  • C语言程序设计与开发

  • 地理信息系统概论

  • GIS 设计与开发

  • 面向对象设计与开发

  • 网页设计与制作

  • 人工智能与专家系统

  • 遥感地学分析

  • 空间数据库和关系数据库等

在此基础上,我们需要了解一些WebGIS开发的编程语言。

02 编程语言和基础

大家在学校所接触的编程语言也有多种,从C语言到C++、C#、Java等,相信大家都有所接触,其他专业的没接触过的也至少所有耳闻。

但是,这里要跟大家重点说明,毕竟编程语言的选择,非常重要!

虽然C语言是一种面向过程的语言,但在学习WebGIS时,我们主要需要理解面向对象的概念,其次也需要了解函数、类等概念。

一般来说,GIS专业的本科生,通过大学课程的学习,已经掌握了一些 GIS 的理论知识,如:地理信息系统的组成、地理空间数据获取、地理空间数据表达、地理空间数据处理、地理空间数据管理、地理空间数据分析、地图制图与空间可视化等。

同时,也掌握了一些桌面GIS软件,例如ArcGIS、ArcMap的使用。

所有这些理论知识为将来学习WebGIS奠定了基础。

如果有不了解GIS相关的基本知识,很难进行GIS开发;与此同时,WebGIS本质上是基于Web端的地图可视化应用,因此,我们还需要了解Web的基本概念和相关知识。

03 WebGIS的入门知识

学习WebGIS开发时,我们首先要接触的是Web端开发语言,可能说到这里,很多小伙伴都知道,我们要学习HTML、CSS和JavaScript等前端编程语言。

1)HTML\CSS

其中,HTML和CSS相对简单,比较容易上手。

大家可以利用新中地给出的智慧校园、智慧交通等包含前端编程的课程熟悉这几种语言。

学完以后,我们可以很快掌握如何搭建一个网站,并在项目中用我们搭建的网站实现一些功能。

图片

2)JavaScript

学完HTML\CSS,接下来就是JavaScript,JS相对较难,需要我们花费更多的精力学习。

JS也是我们需要重点掌握的内容,因为如果不熟练掌握JavaScript,后续将很难在项目中进行灵活运用。

JS作业:

图片

新中地天气网页

图片

可视化作业

到此,大家一定对这些语言有一定的了解。

接下来,就能初步了解WebGIS开发的基本知识。

当然,后续我们还需要学习更多内容,因为WebGIS开发有很多形式。例如,有些人使用ArcGIS for JS API进行开发,有些人使用OpenLayers,还有人使用Mapbox GL或Cesium。

虽然上述内容的开发形式不同,但都属于WebGIS开发,并且都是通过调用封装好的类、属性和方法来实现的,其底层逻辑是可以融会贯通的。

看到这里,相信新手已经对自己要学习的内容有所了解。那么具体应该怎么学习呢?

这里推荐小白从下面两个项目入手:

1)智慧校园:零基础可学实战项目

第一章GIS开发概述

第1节-什么是GIS开发

第2节-WebGIS开发

第3节-如何学习webGIS开发

第4节-GIS平台

第5节-术语与名词

第二章开发环境搭建

第1节-开发软件

第2节-高德开放平台

第三章Web开发篇

第1节-HTML快速入门

第2节-CSS快速入门

第3节-JavaScript快速入门

第四章WebGIS开发

第1节-开发准备

第2节-地图显示

第3节-地图控件

第4节-点标记

第5节-几何计算

第6节-GeoJSON

第五章实战案例

第1节需求分析

第2节设计方案

第3节具体实现

图片

+文末小助手,备注【智慧校园】无偿领取

2)智慧交通实战项目

图片

+文末小助手,备注【智慧交通】无偿获取

04 WebGIS框架

这一点我们之前重点讲过,没看过的小伙伴可以看下面的详细介绍:

这里我大致提一下,WebGIS开发的引擎分为四大类:

1)Charts可视化图表

主要负责可视化功能,以D3.js,Echarts等为代表。

图片

2)LBS地图开放平台

LBS就是Location Based Service,国内的LBS以高德/谷歌/百度/天地图等为代表。

图片

3)WebGIS商业API

这类也是工作中比较常见的,例如ESRI的ArcGIS API For JS,超图的IClient,中地数码的MapGIS Client for JS,都属于商业API。

图片

4)WebGIS开源API

开源框架是目前使用最多最广泛的,比较出名的就有Leaflet,OpenLayers,Cesium,MapboxGL等。

图片

根据目前就业需求来看,大多数企业要求会开源框架,因此我们学习也以开源框架为主,那这里又主要分为二维和三维框架。二维包括openlayers、leaflet等;三维包括mapbox以及threejs、cesium等。下面一一进行介绍。

二维框架:openlayers

openlayers是最所有初学者必须要掌握的第一个框架。下面是openlayers的知识图谱,来源网络:

图片

从上图中可以看出,OpenLayers 实现了上百个类,用于对GIS中的各种事物进行抽象表达。

其中 Map,Layer,Source 和 View 是 OpenLayers 框架体系中的核心类,几乎所有动作都围绕这几个核心类展开,以实现地图加载和相关操作.

在Openlayers的体系框架中,把整个地图看作一个容器(Map),核心为地图图层(Layer),每个图层有对应的数据源(Source),并由地图视图(View)进行地图表现。地图容器上还支持一些与用户交互的控件(Control 和 Interaction),另外 Openlayers 还支持事件机制。

总之,OpenLayers 使得在任何网页中放置动态地图变得很容易。它可以显示贴图,矢量从任何来源载入的数据和标记。OpenLayers 已经被开发来进一步使用各种地理信息。它是完全免费的开源JavaScript。

openlayers开发学习教程:

图片

之前我们说过,Mapbox是二三维结合的一款框架,也是三维框架里面最容易入手的一个。

图片

三维框架Mapbox

官网:https://www.mapbox.com/

Mapbox是⼀个可以创建各种自定义地图的网站,如 Pinterest、Evernote、Github、500px 等大牌都使用Mapbox创建地图。

Mapbox宣称要构建世界上最漂亮的地图。

已为Foursquare、Pinterest、Evernote、⾦融时报、天⽓频道、优步科技等公司的网提供了订制在线地图服务。

Mapbox针对不同平台均开发了相应的GIS引擎以满⾜开发者或相关用户的需要,如:iOS SDK(⽤于iOS端开发)、Android SDK(用于Andriod端开发)、Navigation SDK(用于Navigation端开发)、Unity SDK(用于Unity端开发)、GL JS(用于web端开发)。

不同平台的SDK,除使用⽅式不同外,功能特性上也多多少少存在不同。此外,Uber还针对react开发了 react-map-gl。

总的来说,Mapbox的开源技术栈是⾮常全面的。

图片

图片

完整版PDF+视频教程+源码

+文末小助手,备注mapbox无偿获取

 

三维框架:cesium

Cesium是一款使用JavaScript开发的基于WebGL的,能够实现三维地球和地图可视化的JS库。

Cesium支持海量的三维模型数据、影像数据、地形高程数据、矢量数据等丰富的地理数据的加载。在交通,规划,城市管理,地形仿真等领域有非常广泛的应用。

前面也给大家反复介绍过cesium,它是目前功能最齐全的三维GIS开发框架,也是在就业过程中,企业最看重、面试最容易被考核的一个。

图片

初学者刚接触Cesium时,看到它的文档,可能会被震惊到。

毕竟cesium库中的类实在是太多,每一个类又有大量的函数和属性,而且官网的文档又是英文,这给我们学习GIS开发的同学带来了极大的困扰。

图片

cesium.js库

但是接触多了,我们会发现,其实Cesium开发文档里边的好多类属性和方法都是一样的。比如,在Cesium中,一个非常重要的类是Viewer。

如果要使用Cesium创建一个三维窗口,几乎无法避免使用Viewer类。因为它代表了Cesium的三维窗口。

图片

标志性建筑

图片

全局飞线

图片

【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开,重点研究其动力建模与控制系统设计。通过Matlab代码与Simulink仿真实现,详细阐述了该类无人机的运动与动力模型构建过程,分析了螺旋桨倾斜机构如何提升无人机的全向机动能力与姿态控制性能,并设计相应的控制策略以实现稳定飞行与精确轨迹跟踪。文中涵盖了从系统建模、控制器设计到仿真验证的完整流程,突出了全驱动结构相较于传统四旋翼在欠驱动问题上的优势。; 适合人群:具备一定控制理论基础和Matlab/Simulink使用经验的自动化、航空航天及相关专业的研究生、科研人员或无人机开发工程师。; 使用场景及目标:①习全驱动四旋翼无人机的动力建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计与仿真技术;③深入理解螺旋桨倾斜机构对飞行性能的影响及其控制实现;④为相关课题研究或工程开发提供可复现的技术参考与代码支持。; 阅读建议:建议读者结合提供的Matlab代码与Simulink模型,逐步跟进文档中的建模与控制设计步骤,动手实践仿真过程,以加深对全驱动无人机控制原理的理解,并可根据实际需求对模型与控制器进行修改与优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值