以后要做GIS开发的话是学GIS专业还是学计算机专业好一些?

news2024/11/18 6:19:45

GIS开发其实严格来说分为前后端以及底层开发。不同的方向,代表了不同的开发语言。

所以大家首先要了解自己具体要做的岗位类型是什么,其次才是选择专业侧重点。

但是严格来说,选择某个专业,到就业方向这个过程,并不是不可逆的。意思是,假设你的专业并不适合某一个岗位,也能够通过后天的学习努力达到标准。

下面重点说一下GIS行业主要的开发岗位分类:

1、GIS底层开发

GIS底层是指软件的桌面端、Web应用程序和移动应用程序。

说白了就是做软件,国内外有各种GIS软件公司,例如美国的ESRI公司的arcgis,国产的超图的supermap和中地数码的mapgis等,都属于gis软件。

软件开发又分为应用层和底层,通常会用到c语言或c++,企业会招聘C++工程师来从事这部分工作。需要这类开发人员掌握基本的数据结构和算法以及相关开发经验。

所以这类岗位,计算机专业的同学更有优势。

2、Webgis开发

也就是常说的二次开发或前端GIS开发,webgis以网页端为载体,通常是通过前端技术,实现地图可视化展示。

WebGIS实际上属于前端可视化开发的一个方向,地图可视化开发。

而这其中又分为二维和三维,分别对应leaflet(二维)、openlayers(二维)和mapbox(三维)、cesium(三维)等开发引擎。

市面上大部分招聘WebGIS工程师、三维GIS开发工程师等说的也是这一类。

前面说到,WebGIS开发属于地图可视化开发,因此他们需要学习前端知识以及常用的二三维GIS开发框架。

很多地图框架例如openlayers、cesium等,都是已经封装好的地图API,webgis工程师需要在前端编程的基础上,将这些API调用,实现项目所需的展示及交互等功能。

webgis涉及到很多地图格式、坐标、地图处理、地图空间分析等相关知识,因此大部分企业更青睐GIS专业的科班背景,当然,会编程是必须的。

3、GIS后端开发

GIS公司通常也会招聘后端开发,一般后端是使用Java、PHP等作为开发语言,Java应用相对较广。

在实际工作中,一个GIS的项目开发过程,通常需要前后端结合开发配合,前端负责展示和交互,后端负责数据存储和处理。

二者缺一不可。

也有一些公司会要求程序员全栈,也就是前后端都会;但我个人认为分工明确可以提升工作效率,精度,在各自的专业领域发挥更大价值。

要求前后端都会的,多少有点扼杀程序员在各自领域的发展空间了。

如果给的钱多,还好说,否则不是很推荐这种做法。

全都学,但是都不精,更容易迷茫。

几种语言分别有什么区别?

以上几种开发的区别在于,底层开发通常是针对软件应用层面进行开发,而前后端开发通常是跟据项目的要求进行开发,三者侧重点不同。

1、底层开发

不同层次的开发往往采用不同的编程语言,底层开发往往采用执行效率更高的C、C++;通常了解GIS软件或GIS行业的人应该知道,GIS软件会有网页端、桌面端、移动端等。

下面以mapgis为例:

图片

C++是很多开发人员最熟悉的语言之一,尤其是对桌面应用程序非常友好。无论是Windows还是Linux,C++都有一个很长的成功应用程序支持和支持。

这一块接触的不多,就不展开说了。

2、应用层开发

不同的编程语言往往有不同的应用场景,主要取决于编程语言自身的特点。

应用层开发往往采用前端HTML以及JS(用户层面)和后端(Java、PHP)等语言;

GIS应用层是指比如智慧城市(数字孪生、智慧公安、智慧交通等)、自然灾害(国土、自然资源、灾害预警)、地质等各种解决方案和应用。如下图所示:

图片

GIS底层开发分别是硬件资源管理和容器开发,如果是应用层开发往往是实现业务逻辑,而前后端开发往往是完成内容的呈现和响应用户的输入,后端则将用户的数据存储起来,在用户查询的时候再从后端的数据库中调取并呈现到前端。

前面也提到,通常在项目中,前后端是分不开的。

择业方向

计算机毕业的学生通常较少去做WebGIS,他们往往会去互联网公司工作,选择和机会更多。少数部分人员也会进入GIS行业,但通常是做底层业务开发以及后端。

当然近几年的就业环境不好,计算机和GIS行业的人才也有一定融合的趋势。

目前陆续有部分互联网公司、电商等行业从事前端开发的人员想进入GIS行业做WebGIS开发。

一般来说,我们可以看到在一家GIS软件公司,底层开发和Java后端这些岗位通常是计算机专业毕业的学生担任。

通常,如果是GIS或者测绘专业毕业的学生,不会做后端和底层,因为他们计算机基础卷不过计算机专业的学生,本科四年的学习内容还是相差蛮大的。(也有一些直接转专业或考研到计算机专业的,这种属于弯道超车,不多讨论)

GIS或者测绘专业的学生,如果从零开始学习Java或C++以及获取项目经验的难度较高,即便在本科阶段,有大概接触过C、C#、C++等语言,但多为完成学业,学的内容比较粗浅。

相比之下,webgis对于他们来说就很有优势。

目前GIS领域比较火爆的岗位是WebGIS开发,由于webgis开发同时需要会编程和GIS知识储备,因此成为行业或缺人才。

本科阶段学习的GIS基础在webgis编程上都能用到,同时,在此基础上学习了编程技术,可以突破自己的就业瓶颈。

所以大部分GIS、测绘这些专业的学生转码会选择webgis开发。

你会看到一家公司webgis开发的工作人员大部分都是GIS以及测绘遥感等相关专业的毕业生。

他们的用人逻辑是:强开发+强地理>强开发+弱地理>若开发+强地理>弱开发+弱地理。

当然在一家GIS公司或者硬件设备公司例如测绘公司,大部分GIS、测绘等专业毕业的学生在从事外业或者制图等工作,也就是GIS专业自我调侃式的“GIS民工”。

综上,如果你要做前端GIS,也就是webgis开发,那么GIS专业是更有利的。

如果是其他方向,肯定是学计算机专业更好。

计算机专业的同学,如果要进入GIS行业工作,大部分也都是做后端或者软件业务开发。

WebGIS的要求

我们在招聘网站上随便找一个webgis开发的岗位,看下需求就会发现,基本上都是要求会html/css、JavaScript、openlayers、cesium、webgl、vue等等。

图片

此外,根据我们之前整理的webgis开发岗位关键词显示,cesium在webgis开发岗位中出现次数最多,其次是JavaScript、webgl、vue、html/css等。

图片

具体需求一目了然。

领取完整版二三维WebGIS开发课程

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

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

相关文章

大疆笔试题目(2023-08-13)

1. 输出无重复3位数 时间限制: 3000MS 内存限制: 65536KB 题目描述: 从{1,2,3,4,5,6,7,8,9}中随机挑选不重复的5个数字作为输入数组’selectedDigits’,能组成多少个互不相同且无重复数字的3位数?请编写程序&#xff…

大创项目推荐 深度学习的水果识别 opencv python

文章目录 0 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习…

基于小波多普勒变换的回波信号检测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1小波变换基础 4.2 多普勒效应与多普勒变换 4.3 小波多普勒变换 4.4 回波信号检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %回波…

QT自定义控件0-360°刻度尺

支持0到360,360到0的过度。 直接上代码,可以直接用,使用的paintevent事件实现的,没啥好讲的。 .cpp void Widget::drawCourse(QPainter& p,QPen pen,QFont font) {double currentNumber m_ang;p.setBrush(Qt::black);p.dra…

Docker-02-镜像项目部署

Docker-02-镜像&项目部署 文章目录 Docker-02-镜像&项目部署一、镜像①:镜像结构②:Dockerfile③:构建镜像01:构建02:查看镜像列表03:运行镜像 二、网络①:容器的网络IP地址②&#xff…

【动态规划】【二分查找】【C++算法】730. 统计不同回文子序列

作者推荐 【动态规划】【数学】【C算法】18赛车 涉及知识点 动态规划 二分查找 LeetCode730. 统计不同回文子序列 给你一个字符串 s ,返回 s 中不同的非空回文子序列个数 。由于答案可能很大,请返回对 109 7 取余 的结果。 字符串的子序列可以经由…

PGSQL主键序列

PostgreSQL和 MySQL数据库还是有一定的区别。 下面了解一下 PGSQL的主键序列。 一、主键 1、系统自带主键序列 在 PostgreSQL 中,GENERATED BY DEFAULT 和 GENERATED ALWAYS 是用于定义自动生成的列(Generated Column)的选项。一般可作用…

可达性分析

可达性分析 这个算法的基本思路就是通过 一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过 程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC …

数学建模--比赛

内容来自数学建模BOOM:【快速入门】北海:数模建模基础MATLAB入门论文写作数学模型与算法(推荐数模美赛国赛小白零基础必看教程)_哔哩哔哩_bilibili 目录 1.学习内容 2.参赛须知 1)参赛作品的组成 2)参赛作品的提交 3.软件安装 4.注意…

Electron中苹果支付 Apple Pay inAppPurchase 内购支付

正在开发中,开发好了,写一个完整详细的过程,保证无脑集成即可 一、先创建一个App 一般情况下,在你看这篇文章的时候,说明你已经开发的app差不多了。 但是要上架app到Mac App Store,则要在appstoreconnect…

pyspark 笔记:窗口函数window

窗口函数相关的概念和基本规范可以见:pyspark笔记:over-CSDN博客 1 创建Pyspark dataFrame from pyspark.sql.window import Window import pyspark.sql.functions as F employee_salary [("Ali", "Sales", 8000),("Bob&qu…

UI自动化Selenium 无头模式运行

1、导入浏览器参数设置 from selenium.webdriver.chrome.options import Options 2、创建参数,并使用无厘头模式创建driver对象 opt Options() # 新建参数对象 opt.add_argument("--headless") # 无头 self.driver webdriver.Chrome(optionsopt) …

【数据结构】哈希表详解,举例说明 java中的 HashMap、HashTable及其区别

一、哈希表(Hash Table)简介: 哈希表是一种数据结构,用于实现字典或映射等抽象数据类型。它通过把关键字映射到表中的一个位置来实现快速的数据检索。哈希表的基本思想是利用哈希函数将关键字映射到数组的索引位置上,…

四款免费、易用的Docker漏洞扫描工具

本文向您介绍四种既可以扫描Docker镜像中的漏洞,又能够被轻松地集成到CI/CD中的四种免费实用工具。 基本原理 所有这些工具的工作原理都比较类似。它们使用的是如下两步流程: 生成软件物料清单(Software Bill of Materials,SBOM)。将SBOM与…

USB PHY for FPGA layout

https://blog.csdn.net/qq_41904778/article/details/123967670 ZYNQ7000内部没有USB PYH,我们通过USB 3320 PHY 芯片来连接FPGA 和外部的USB端口(DP & DP-)。USB 3320 PHY跟FPGA内部是t通过ULPI接口试下的,然后把数据转化为…

windows下编译报‘mutex‘ in namespace ‘std‘ does not name a type的解决方案

问题复述: windows下使用MinGW编译工程时,报如下错误: error: ‘mutex’ in namespace ‘std’ does not name a type error: ‘mutex’ is not a member of ‘std’ error: ‘mutex’ was not declared in this scope 问题分析&#xff…

C#,字符串匹配(模式搜索)Sunday算法的源代码

Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。 核心思想:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配&…

跨域原理和解决方案

前置知识 什么是跨域 主要是由于浏览器的同源策略引起的,同源策略是浏览器的安全机制,当 协议,域名,端口 三者有一个不同,浏览器就禁止访问资源。 比如:http://www.company.com:80 http://www.company.…

chatgpt的实用技巧四temperature 格式

四、temperature 格式 GPT3.5 temperature 的范围为:0-0.7; GPT4.0 temperature 的范围为:0-1; 当 temperature 为 0 时候,结果可稳定。 当 temperature 为 0.7/1 时候,结果发散具备创力。 数值越大&a…

【动态规划】24子数组系列_最长湍流子数组_C++

题目链接:最长湍流子数组 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求返回 arr 的 最大湍流子数组的长度 由题可得: 如果比较符号在子数组中的…