对于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. bitset类型, 标准库类型
  2. 迟到的预备赛前练习赛题解
  3. Quartz使用示例总结
  4. 特斯拉上海超级工厂开工 预计今夏完成初期建设
  5. 记一次lua打包环境导致的coredump
  6. 【CyberSecurityLearning 27】扫描与密码爆破
  7. 用PMML实现机器学习模型的跨平台上线
  8. 美团Android开发工程师岗位职能要求,真香
  9. 实例19:python
  10. .Net Micro Framework导航总贴(新手必看)
  11. sourcetree的安装及使用
  12. ionic3 前台时间戳转化成日期问题
  13. 五班二组高级软件测试进度报告
  14. 免费语音识别_免费 语音识别_免费语音识别api - 云+社区 - 腾讯云
  15. xcode 4,2 for Mac 10.6.8
  16. Android ListView + ArrayAdapter、SimpleAdapter、BaseAdapter实现列表
  17. 科技未来 | 计算机芯片如何拥有嗅觉?
  18. 免费采集软件智能万能采集数据
  19. C++实现 利用前序序列和中序序列构建二叉树
  20. IT美女放弃高薪工作的创业之路

热门文章

  1. 【Delphi】Android 桌面图标添加快捷菜单功能
  2. Linux查看用户登录的历史记录
  3. 【WangEditor】使用富文本编辑器 WangEditor 实现用户自定义图片大小(改js源码)
  4. CodeChef Graphcnt:Counting on a directed graph(支配树)
  5. Scala json转map,map转json
  6. 四旋翼飞行器平衡传感器数据 处理方法探讨
  7. 除尘机器人毕业_【干货】焊接机器人除尘方式
  8. vmware workstation 8序列号
  9. “潮经济”的品牌营销和消费模式具有哪些特点?
  10. 独轮平衡车c语言源码,双轮平衡车程序 - 源码下载|嵌入式/单片机编程|源代码 - 源码中国...