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 ...
最新文章
- bitset类型, 标准库类型
- 迟到的预备赛前练习赛题解
- Quartz使用示例总结
- 特斯拉上海超级工厂开工 预计今夏完成初期建设
- 记一次lua打包环境导致的coredump
- 【CyberSecurityLearning 27】扫描与密码爆破
- 用PMML实现机器学习模型的跨平台上线
- 美团Android开发工程师岗位职能要求,真香
- 实例19:python
- .Net Micro Framework导航总贴(新手必看)
- sourcetree的安装及使用
- ionic3 前台时间戳转化成日期问题
- 五班二组高级软件测试进度报告
- 免费语音识别_免费 语音识别_免费语音识别api - 云+社区 - 腾讯云
- xcode 4,2 for Mac 10.6.8
- Android ListView + ArrayAdapter、SimpleAdapter、BaseAdapter实现列表
- 科技未来 | 计算机芯片如何拥有嗅觉?
- 免费采集软件智能万能采集数据
- C++实现 利用前序序列和中序序列构建二叉树
- IT美女放弃高薪工作的创业之路
热门文章
- 【Delphi】Android 桌面图标添加快捷菜单功能
- Linux查看用户登录的历史记录
- 【WangEditor】使用富文本编辑器 WangEditor 实现用户自定义图片大小(改js源码)
- CodeChef Graphcnt:Counting on a directed graph(支配树)
- Scala json转map,map转json
- 四旋翼飞行器平衡传感器数据 处理方法探讨
- 除尘机器人毕业_【干货】焊接机器人除尘方式
- vmware workstation 8序列号
- “潮经济”的品牌营销和消费模式具有哪些特点?
- 独轮平衡车c语言源码,双轮平衡车程序 - 源码下载|嵌入式/单片机编程|源代码 - 源码中国...