月薪没到20K,必啃的WebGIS系统技术栈,你练到哪一步了?

2024-06-18 17:44

本文主要是介绍月薪没到20K,必啃的WebGIS系统技术栈,你练到哪一步了?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WebGIS(网络地理信息系统)是目前地理信息系统(GIS)开发的主流,它利用互联网技术来发布、共享和交互地理空间数据。

一个完整的WebGIS项目通常涉及以下几个主要环节:具备一定的理论知识,数据生产、数据入库、数据存储、前后端开发,GIS常用软件,地图开发框架、前端渲染、前后端交互、平台发布等等个环节,这就决定了每个环节有要应用对应的技术,你擅长哪个部分也决定了今后的职业发展方向,同时如果你学有余力,可以推动想GIS开发全栈工程师方向发展。

Party1

相关基础理论知识

GIS基础理论知识

①基数数据模型:矢量、栅格、真三维、倾斜摄影测量、点云

②空间索引:L曲线、四叉树、八叉树

③规范:

OGC(数据规范、服务规范)

④数据格式规范:

非公开格式数据:geodatabase、dwg、udb

交换格式:dxf、shapefile、geojison、netcdf

⑤空间操作:相交、镜像、打断、空间校准、延长、定位

⑥空间分析:缓冲区分析、日照分析、淹没分析、可视域分析

⑦制图方法:唯一值渲染、多值渲染

测绘基础知识

坐标相关:大地坐标、投影坐标、控制点(高程、水平),坐标转换(七参数、三参数)

地形图:分幅、基数比例尺

遥感基础知识

影像金字塔、分辨率

Party2

数据生产

WebGIS系统的基础是空间数据,项目很大的一部分工作就是要处理数据、分析数据,进行地图符号化配置,这就要用到桌面版的数据处理软件。

图片

ArcGIS、SuperMap、MapGIS和FME等商业软件在GIS领域拥有广泛的应用和强大的功能。这些软件通常提供了丰富的数据处理、分析、可视化和空间数据库管理功能,适用于各种复杂的GIS项目。

QGIS、uDig是开源软件,QGIS要强于Udig,用户可以通过安装插件来扩展QGIS的功能,以满足自己的特定需求。同时,QGIS的文档和教程也相对完善,易于学习和使用。

Party3

数据存储

图片

关系数据库:MySQL、PostgreSQL、Sql server、Oracle

NoSQL数据库:MongoDB

分布式文件存储:HDFS

Oracle、SqlServer是用的较多的两个商业的关系型数据库,用来存储非空间数据和空间数据,从对空间数据操作的性能上来说,还是Oracle突出些。

MySQL支持空间数据的存储,可以通过shp2mysql将shp数据导入MySQL。

PostgreSQL是一个功能强大的开源对象关系数据库系统,在可靠性、功能稳健性和性能方面都不错。

PostGIS是对PostgreSQL数据库的一个扩展,增加了对空间数据的支持。

SQLite、Spatial Sqlite是在Android移动端用的开源数据库,后者比前者增加了对空间数据的支持。

Party4

前端开发

前端网页端编程语言必然是 JavaScript、HTML、CSS三剑客和Jquery,可以用Bootstrap、EasyUI等UI框架。

为了快速、方便的开发系统,可以选用Web开发框架,如Angular、React、Vue、Quasar等。

图片

Angular、React、Vue三者一直在被比较优缺点,一直在被争论用哪个。angualr 、react对于普通的前端从业人员来说入门还是比较难的,Vue相对更轻量级、更便捷、上手快,在国内拥有较多的用户。无论从GIS开发人员水平,还是从WebGIS项目本身来说,Vue更适合做WEBGIS项目。

Quasar是一个高性能的VueJS UI组件框架,它可以构建一流的高性能的响应式网站、PWA、SSR、移动和桌面应用。

JS:ESS、ES6

H5:canvas2d、websocket、webGL

CSS3

LESS

工具:webpack、Grunt

可视化框架:Echarts、EchartsGL、D3.js

基础框架:vue.js、React.js、bootstrap、Jquery

Party5

后端开发

WebGIS系统后端架构非常全面,涵盖了数据库操作、数据接口提供、用户认证、权限管理以及内存缓存等多个方面。

图片

WebGIS系统需要调用数据库中的非空间数据进行增删改查,这就需要供前端调用的数据接口,后端开发语言可以用Java、C++、PHP、Python、.NET,开发框架可以用Spring Boot、ThinkPhp、Django、ASP.NET,但Java系仍是主流。

使用Spring Boot作为后端开发框架确实是一个很好的选择,因为它提供了许多开箱即用的功能和良好的生态系统支持,使用的话还可以整合Spring Security,实现用户认证、权限管理;整合Redis实现内存缓存。

结合WEBGIS系统需求,后端开发必须要考虑高并发、高性能、高可用、分布式、大数据方面的技术,这也是后端开发人员要掌握的技术。

图片

Node.js:Express、Egg.js

Java:springBoot、springMVC、spring

Net.:Asp.NetMVC

Party6

GIS工具

主流GIS软件操作

ArcGIS、SuperMap、QGIS、FME、uDig、Geoserver

postGIS、Envi、3dMAX、AutoCAD、smart3d

专题GIS软件学习

针对特定领域(如城市规划、环境监测等),学习相应的专题GIS软件和应用方法。

Party7

前端渲染库&地图框架

要实现前端GIS数据展示和操作,依靠的是前端GIS渲染JS库,既有商业的,也有开源的,既有二维的,也有三维的。

图片

二维:openlayers、Mapbox、Mapv、Leaflet

三维:cesium、Three.js、unit3d、MapBoxGL、MapTalks、osg、

功能库:turf.js

后台:Geotools、

大数据:GeoMesa、GeoTrellis、GeoWave、Greenplum

OpenLayers和Leaflet是两个常用的开源GIS地图库。OpenLayer相对功能强大,最新版本的地图渲染方式为Canvas和WebGL, Canvas展示二维地图,WebGL的渲染方式有望支持三维。Leaflet体积小,对移动端友好,专注性能和可用性,没有OpenLayer那么复杂,但具有大多数开发人员所需的所有制图功能。

MapBox-GL是使用WebGL技术独立渲染前端库,通过WebGL的高性能,它能够渲染大量的地图要素,同时拥有流畅的交互以及动画效果。

百度地图API、高德地图API、腾讯地图API属于互联网公司推出的API库,从他们的定位和产品来看,不是真正的GIS库。

Cesium和Threejs都是基于 WebGL 的前端3D JS 类库,拥有广泛的用户群。

Echarts、D3属于不是GIS但经常用于GIS项目的可视化库。

Party8

攻坚方向

web大场景三维可视化

压缩、化简、切片、后期效果、前期效果、动画、粒子特效、光线追踪、自动快速建模

地理大数据治理

大数据索引、大数据融合模型

视频融合

视频拼接融合、视频投影、大规模视频播放、

物联网

数据实时汇聚、数据建模管理

最后,分享一个小编非常赞同的观点

WebGIS本质上是Web+GIS,计算机专业人员和GIS专业的开发人员都可以从事。

论单纯软件开发,搞GIS开发的拼不过不过学计算机专科出身的程序员,但是纯软件开发的人又对GIS不太懂,而WebGIS系统开发项目又要求开发人员对GIS有一定的理解。

GIS专业的开发人员本身具有GIS专业背景和一定的软件开发技术

GIS专业背景使他们具备深厚的空间数据处理、分析和地图可视化的知识,了解GIS数据的复杂性和多样性,在空间地理思维方面,能够更好地理解项目的需求和目标,并将其转化为实际的技术实现,更适合主导、负责整个WebGIS项目。

GIS专业的开发人员的技术应该是全栈的,既要懂空间数据处理分析,又要会地图专题图制作,既得熟悉主流开发语言,还得精通前端GIS API的调用,甚至发挥空间地理思维参与页面设计。

这就是我们GIS专业开发人员的独特优势。

对于没有从事过地信相关专业的同学,想转行GIS开发,其实就是从一个HelloWord开始

GIS开发当前处于发展期,人才需求量大,学员完全可以通过短期职业培训进入这个行业。

图片

这篇关于月薪没到20K,必啃的WebGIS系统技术栈,你练到哪一步了?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072680

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节