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

news2024/11/25 19:27:50

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开发当前处于发展期,人才需求量大,学员完全可以通过短期职业培训进入这个行业。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据压缩还能这么玩,国产数据库有救了!

页级压缩 opengauss数据库是以数据页面(Page)为单位进行压缩解压,本特性自openGauss 3.0.0版本开始引入,通过对数据页的透明页压缩和维护页面存储位置的方式,做到高压缩、高性能。提高数据库对磁盘的利用率。 页级压缩…

文心一言 VS 讯飞星火 VS chatgpt (284)-- 算法导论21.2 2题

二、对定理 21.1 的整体证明进行改造,得到使用链表表示和加权合并启发式策略下的 MAKE-SET 和 FIND-SET 的摊还时间上界为 O(1),以及 UNION 的摊还时间上界为 O(lgn)。如果要写代码,请用go语言。 文心一言: 在Go语言中实现使用链…

Golang——channel

channel是Go在语言层面提供的协程间的通信方式。通过channel我们可以实现多个协程之间的通信,并对协程进行并发控制。 使用注意: 管道没有缓冲区时,从管道中读取数据会阻塞,直到有协程向管道中写入数据。类似地,向管道…

Java快速开发:力推开源项目若依RuoYi

在Java开发开源框架中,首屈一指的应该若依,在行业里,不管小公司中公司还是大公司,都能够看到若依项目的身影。足以见得 若依框架的受众之大。 RuoYi-Cloud RuoYi-Cloud 是一个 Java EE 分布式微服务架构平台,基于经典…

轻兔推荐 —— who.cx

via:轻兔推荐 - https://app.lighttools.net/ 简介 who.cx是一个域名whois查询工具,界面简洁,可查询域名基本信息,注册续费价格,支持查看一级域名解析记录 - 对于已注册域名可以查看注册商注册时间、 过期时间等基础信…

大多数JAVA程序员都干不到35岁吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!! 很遗憾是的,对…

idea2020版本下载及注册

一。准备idea2020和BetterIntelliJ插件和补丁key 二、开始安装。 idea就正常安装,然后打开,选择试用30天打开即可,然后File - settings - plugins 点击 Install Plugin from Disk 然后选择BetterIntelliJ这个,这个后期不可变名称…

漏洞挖掘 | 记一次某src拿下高危漏洞

一、获取web端管理员权限 0x01简单查看一下,发现存在登录以及证书查询操作指南等功能 因该站特征较为明显,所以对页面进行了强打码 0x02弱口令测试(无成果) 既然存在登录口,那么肯定要试试弱口令了,开干…

124M中国十大城市群规划范围数据

城市群是由若干个都市圈构成的广域城镇化形态,其内部应该包含若干个中心城市。 都市圈是指围绕某一个中心城市,即超大或特大城市的城镇化形态。 无论在体量还是在层级上,都市圈要低于城市群的概念。 现在,我们就来为你分享一下…

国内能用的ai聊天软件有哪些?这三款还不错

国内能用的ai聊天软件有哪些?在人工智能飞速发展的今天,AI聊天软件已经成为我们日常生活和工作中不可或缺的一部分。它们不仅可以帮助我们快速获取信息,还能提供有趣的对话体验。今天,就为大家推荐三款国内能用的AI聊天软件&#…

Consul 如何删除不需要的服务

一、找到需要删除的id 二、打开postman 使用put请求 http://ip:port/v1/agent/service/deregister/mc-admin-192-168-0-182-8084三、区域如果要验证输入验证

粒子群算法PSO优化BP神经网络预测MATLAB代码实现(PSO-BP预测)

本文以MATLAB自带的脂肪数据集为例,数据集为EXCEL格式,接下来介绍粒子群算法优化BP神经网络预测的MATLAB代码步骤,主要流程包括1. 读取数据 2.划分训练集和测试集 3.归一化 4.确定BP神经网络的隐含层最优节点数量 5. 使用粒子群算法优化BP的神…

vue3实现div盒子的内容hover上去时样式改变及部分元素的显隐

样式&#xff1a; hover后的样式&#xff1a; 整体盒子的背景颜色发生了改变&#xff0c;盒子内边距发生了改变&#xff0c;右下侧的箭头出现 实现方式&#xff1a; 利用mouseover和mouseout并结合css样式实现 template中&#xff1a; <divclass"new-item"v-f…

uniapp滚动加载

uniapp实现滚动加载&#xff0c;先获取10条数据&#xff0c;滚动到底时&#xff0c;再获取10条数据&#xff0c;以此类推&#xff0c;直至没有数据为止。 使用scroll-view&#xff0c;注意一定要给一个固定高度&#xff0c;隐藏滚动条会更美观 2. 在data中定义 3. 获取数据 …

【回溯算法题记录】39. 组合总和

题目&#x1f517; 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数…

2. kafka消息队列

kafka消息队列 一、kafka消息队列二、消息服务的术语三、kafka消息确认机制 ACK四、kafka安装部署1、环境规划2、使用事先部署好的zookeeper管理kafka的高可用3、安装jdk4、安装kafka5、配置kafka6、启动kafka7、测试生产者、消费者模型7.1 创建主题7.2 测试生产者产生数据7.3 …

Contact-Rich Robot ManipulationTask:grinding and Peg-in-Hole Assembly

Contact-Rich Robot Manipulation Task涵盖了多种需要机器人与环境或物体进行密切接触的复杂操作。 1. Grinding&#xff08;研磨&#xff09; 任务描述&#xff1a;研磨是制造业中常见的加工过程&#xff0c;涉及使用研磨工具去除材料表面的一层或多层&#xff0c;以达到预定…

轻松掌握使用PuTTY SSH连接cPanel的技巧

作为一名多年的Hostease用户&#xff0c;我深知管理服务器的重要性。在我的工作中&#xff0c;SSH连接是必不可少的工具之一&#xff0c;而PuTTY则是我常用的SSH客户端。今天&#xff0c;我想分享一下如何使用PuTTY SSH连接到cPanel&#xff0c;帮助你更好地管理你的服务器。 第…

不止程序员!未来职场的王炸组合也许就是“计算机+X”!

每年毕业季&#xff0c;都会有不少同学感叹计算机行业“太卷了”&#xff0c;连实习都竞争激烈&#xff0c;不禁让人担忧&#xff1a;学计算机未来还吃香吗&#xff1f; 选择专业时&#xff0c;毕业后好不好找工作&#xff0c;的确是需要慎重考虑的关键因素。 放眼当前就业市…

同三维T80006EH2-4K30 双路4K30 HDMI编码器

同三维T80006EH2-4K30 双路4K30 HDMI编码器 2路HDMI输入&#xff0c;各带1路HDMI环出&#xff0c;支持4K30 产品简介&#xff1a; T80006EH2-4K30 4K编码器&#xff08;采集盒&#xff09;是一款双路4K HDMI音视频编码产品&#xff0c;支持2路4K30 HDMI信号输入&#xff0c;各…