GIS开发人员需要掌握的知识和技能
对于GIS行业,可能很多人不是很了解,对我来说也不是很了解,在此呢,我就我自己的看法发表一下简单的看法,有什么不同的意见可以一起交流。
GIS虽说是属于地理科学或者说测绘科学与技术的范畴,但是很大一部分和计算机、数学有很大的联系。对于一个合格的GIS开发人员,可能需要掌握的东西太多了,压在我们身上的担子太重了,下面就不同方面的开发人员所需掌握的技能做一个简单介绍:
一、从开发的层次上来分
GIS开发从开发层次上来划分的话,一般分为底层开发和二次开发。
对于底层开发来说,需要的东西就很多,比如,你要实现GIS底层的几何对象模型那么就要熟悉几何学及其相关的计算几何知识,对于空间数据可视化,你需要掌握计算机图形学和相关平台的绘图API函数,比如windows的GDI等,也可以是OPENGL或者DX。对于空间数据相关的属性数据管理,你需要掌握数据库,不管是大型的还是小型的,开源的和商业的,你总得掌握一个吧。对于空间分析这样的高级功能,需要掌握几何学和运筹学相关的知识,比如最短路径算法,就这个东西,就值得你研究的。你如果想要开发地图注记等模块,别小看注记都是一些文字,但是真正要配置的时候,这些文字需要怎样排列和分布,才会使地图看上去整洁美观,并且注记之间没有压盖,可以说这事一个优化问题,你也许需要去看看一些优化或仿生类的算法才能解决。你只要了解和掌握这些知识就可以了吗?不,你还需要学习编程语言啊,这样你才能开发出实际的系统。还有很多很多,就不一一列举了。
对于二次开发,以前的二次开发都是和GIS基础平台软件结合很紧密的,这也加重了开发人员的负担,因为你需要学习一门新的语言,比如AML,mapbasic等。后来随着组件技术的发展,出现了组件GIS,比如mapobject,AO,AE,mapx,supermap object等等,从此二次开发人员就可以用通用的高级编程语言(c++,c#,java)嵌入GIS组件进行开发了。虽然有些算法进行封装了,但是你需要熟悉组件库的相关API函数,这也是一件很累的事,相信学习过AO,AE的人都会觉得刚开始的时候特别难学。
二、从行业或者说应用领域来分
1、网络GIS,在这个领域,你需要掌握计算机网络的基础知识,这是前提,还需要学习各种前台语言,比如html,javascript,css等,后台服务器端的语言需要掌握JSP或者ASP之类的。当然,你可以借助于现在的成熟的网络GIS产品来开发你的应用,比如你调用google API,使用arcgis server搭建你的应用框架,还有各种的开源GIS项目。最近比较流行的flex和html5貌似是这个方面的开发人员比较好的选择,这个领域我不懂,可能说的不到位。
2、嵌入式GIS,可以看做是桌面GIS的延续,看你的嵌入式平台,你可以选择linux,windows ce,塞班,安卓,ios等,平台太多了,这样要求开发人员首先掌握平台相关的知识,然后你才能开发嵌入式GIS程序了。需要掌握的语言根据不同语言来选择。比如windows ce你可以选择c++,#,vb。linux你可以选择c++。塞班你可以选择qt框架。安卓你可以用java,ios你必须使用objective-C语言。
3、三维GIS,这是一个模拟真实地理世界的领域,三维GIS需要开发人员掌握C++编程语言,三维几何图形的算法、三维可视化与渲染的算法,技术含量比较高,需要开发人员有很强的开发能力。其次,你需要掌握三维图形API,opengl或者D3D都可以。
其次,如果是结合具体应用领域的话,你还需要掌握相关行业的业务知识。这也没办法,我想软件开发所有行业也都如此吧?
GIS,希望明天更美好!
GIS开发人员需要掌握的知识和技能相关推荐
- GIS底层开发—GIS开发人员需要掌握的知识和技能
一.GIS简介 地理信息系统(GIS,Geographic Information System)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析 ...
- 后端开发除了编码还要做什么_每个开发人员都应掌握的基本技能(除了编码)
后端开发除了编码还要做什么 Whether you are learning to code, looking for a new job, or just want to improve your ...
- 前端开发人员所必备的十大技能
2019独角兽企业重金招聘Python工程师标准>>> 前端开发的工作是要如何将自己的设计应用在网络上.它不同于网页设计,更关注于该网站将如何交互和浏览.前端开发布局,按钮和主要界面 ...
- 2020年,JavaScript开发人员必备的5项高薪技能
全文共1816字,预计学习时长5分钟 图源:unsplash 开发人员的一生可以用两句话概括:计算器,以及学习新技能.成为开发人员绝非易事,他们是解决问题的人,也是不断学习的人.科技世界每天都在快速变 ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
- java后端开发需要会什么技能,从事Java后端开发,需要掌握哪些知识和技能?
很多小伙伴想转行做Java的后端,但是又不知道到底该学习些什么,做Java的后端,需要学习和了解什么? 1.首先要明确后端包括哪些职业 DBA(数据库维护优化专家) Developer(程序猿) Ar ...
- 2022最新Android开发全套学习资料(知识笔记+技能图谱)3-5年开发者进阶提升
前言 本人2013年由 java 转到 Android 开发,十年间,我从小厂打杂到进入到核心团队,再跳槽到大厂,在华为呆过一段时间,18年四月份进了阿里一直到现在.这期间,我见证过很多人的成败起落, ...
- Web GIS开发教程
Web GIS开发教程 非程序员的基本 Web GIS 开发 课程英文名:Web GIS development course 此视频教程共4.0小时,中英双语字幕,画质清晰无水印,源码附件全 下载地 ...
- 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?
如果成为一名高级安卓开发 Becoming a Senior Developer is something many of us strive for as we continue our code ...
最新文章
- cdn对加速效果明显吗
- 【解决方案】requests.exceptions.SSLError: HTTPSConnectionPool
- 文献学习(part29)
- Android USB 开发详解
- win7电脑蓝屏的解决方法
- 手机型号识别 手机PID UID 驱动识别 数据库包
- 在opencv3中的机器学习算法
- bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通(BFS)
- 【事件驱动】【蓝牙控制车锁或电灯】初步方案
- WARCannon:高速低功耗网络爬虫
- CLR中的程序集加载
- 【Python爬虫实战】使用Selenium爬某音乐歌曲及评论信息啦~
- Unity3D研究院之解决ttf繁体字体不显示问题
- cad灯具图标_cad灯具图例下载
- android 集成科大讯飞TTS在线语音合成
- “极狐•华为HI版本”的尴尬与困境
- 在git上输错密码,解救办法
- 微信服务器保留几年记录_企业微信朋友圈管理的工具
- 超简单地输出所有水仙花数(Java实现)
- Mac 重命名快捷键