对于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开发人员需要掌握的知识和技能相关推荐

  1. GIS底层开发—GIS开发人员需要掌握的知识和技能

    一.GIS简介     地理信息系统(GIS,Geographic Information System)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析 ...

  2. 后端开发除了编码还要做什么_每个开发人员都应掌握的基本技能(除了编码)

    后端开发除了编码还要做什么 Whether you are learning to code, looking for a new job, or just want to improve your ...

  3. 前端开发人员所必备的十大技能

    2019独角兽企业重金招聘Python工程师标准>>> 前端开发的工作是要如何将自己的设计应用在网络上.它不同于网页设计,更关注于该网站将如何交互和浏览.前端开发布局,按钮和主要界面 ...

  4. 2020年,JavaScript开发人员必备的5项高薪技能

    全文共1816字,预计学习时长5分钟 图源:unsplash 开发人员的一生可以用两句话概括:计算器,以及学习新技能.成为开发人员绝非易事,他们是解决问题的人,也是不断学习的人.科技世界每天都在快速变 ...

  5. 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能

    本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...

  6. java后端开发需要会什么技能,从事Java后端开发,需要掌握哪些知识和技能?

    很多小伙伴想转行做Java的后端,但是又不知道到底该学习些什么,做Java的后端,需要学习和了解什么? 1.首先要明确后端包括哪些职业 DBA(数据库维护优化专家) Developer(程序猿) Ar ...

  7. 2022最新Android开发全套学习资料(知识笔记+技能图谱)3-5年开发者进阶提升

    前言 本人2013年由 java 转到 Android 开发,十年间,我从小厂打杂到进入到核心团队,再跳槽到大厂,在华为呆过一段时间,18年四月份进了阿里一直到现在.这期间,我见证过很多人的成败起落, ...

  8. Web GIS开发教程

    Web GIS开发教程 非程序员的基本 Web GIS 开发 课程英文名:Web GIS development course 此视频教程共4.0小时,中英双语字幕,画质清晰无水印,源码附件全 下载地 ...

  9. 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?

    如果成为一名高级安卓开发 Becoming a Senior Developer is something many of us strive for as we continue our code ...

最新文章

  1. cdn对加速效果明显吗
  2. 【解决方案】requests.exceptions.SSLError: HTTPSConnectionPool
  3. 文献学习(part29)
  4. Android USB 开发详解
  5. win7电脑蓝屏的解决方法
  6. 手机型号识别 手机PID UID 驱动识别 数据库包
  7. 在opencv3中的机器学习算法
  8. bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通(BFS)
  9. 【事件驱动】【蓝牙控制车锁或电灯】初步方案
  10. WARCannon:高速低功耗网络爬虫
  11. CLR中的程序集加载
  12. 【Python爬虫实战】使用Selenium爬某音乐歌曲及评论信息啦~
  13. Unity3D研究院之解决ttf繁体字体不显示问题
  14. cad灯具图标_cad灯具图例下载
  15. android 集成科大讯飞TTS在线语音合成
  16. “极狐•华为HI版本”的尴尬与困境
  17. 在git上输错密码,解救办法
  18. 微信服务器保留几年记录_企业微信朋友圈管理的工具
  19. 超简单地输出所有水仙花数(Java实现)
  20. Mac 重命名快捷键

热门文章

  1. 程序开发中 status 还是 state
  2. 一些特殊ACII码的用法 在控制台中覆盖显示、刷新显示和删除字符
  3. 移动端音视频从零到上手
  4. linux下添加新用户,并赋予root权限
  5. java毕业生设计弹幕视频网站计算机源码+系统+mysql+调试部署+lw
  6. 有什么适合新手学习的3D建模软件?
  7. 在CSS世界的权力——权重
  8. Spring分析之IOC原理
  9. 40了解云计算平台的高可用架构,如 AWS 的多可用区、GCP 的负载均衡器
  10. ISO/IEC 29134