什么是开源GIS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是开源GIS相关的知识,希望对你有一定的参考价值。
参考技术A 顾名思义,开源GIS就是开放源代码的GIS软件。开源:软件开发者以某种协议发布某些软件的源代码,并允许他人在遵守该协议的基础之上可以自由下载、修改、使用和散布其源代码。
开源协议:GNU GPL、BSD、LGPL、MIT、MS-PL
开源网站:open source GIS、sourceforge、google code、apache、codeplex 参考技术B 在百科里面看一看,很详细,就不粘贴了
http://baike.baidu.com/view/5094.htm
作为产品经理为什么选择开源GIS
作为产品经理为什么选择开源GIS
本章导读:选择商用GIS还是开源GIS,这个话题一致困扰着很多GISer,不同的人在不同的情况下有不同的选择。本文笔者从产品经理的角度解释一下为什么要选择开源GIS。 By 李远祥
开源GIS和商用GIS软件的区别
很多技术人员,只要一谈到开源二字,就认为开源技术一定需要非常高深的技术门槛。尤其是GIS这么专业的技术,一旦到了底层技术,涉及测绘、数学、图形图像、行业模型等各方面,完全不是一个程序员就可以解决的事情。开源GIS跟一般的开源软件一样,几乎缺乏厂家或者组织的支持,大部分时间都用在功能探索和堵Bug上,并且缺乏能够驾驭的该技术的人员。但它的好处也是非常明显,免费、轻巧、定制性强、开放程度高等等,足以弥补它的不足。
相对来说,商用GIS会比较简单一些(只能说是相对,毕竟GIS的专业性放在那里)。厂商已经在软件平台中集成了非常成熟和强大的功能,项目开发人员根本上不需要去了解底层的实现,甚至是一些算法原理,本着拿来主义,直接使用。而且商用GIS软件一般都有厂商的售后服务支持,并且提供相当的一些售后培训,甚至还会提供一些代码级别的DEMO和开发框架。社区也相对来说比较成熟,能够相对容易的获得技术帮助。对于项目来说,商用GIS的好处就是省事省心,但需要付出相对的一些成本。
开源GIS的误区
很多人对开源二字都存在一定的误区。其误区主要有几点:
- 开源就是开放源代码
- 开源软件都是免费的
- 开源软件都需要代码级别的修改
- 开源软件很难使用
- 开源软件没有人维护
如果不了解开源软件,可以多去一些开源社区了解一下开源软件。开源软件的种类有很多,开源的方式也不一样,并不是多有的都开放源代码,也不是所有的开源软件都免费使用,开源软件有不同的开源协议,有的还需要将成果回馈给社区。
开源GIS也是一样,不过对于庞大的开源社区来说,开源GIS确实是非常小众的存在。很多人都会认为,专业级别的GIS应用一般不会走开源技术路线。但恰恰相反,越是专业的GIS应用,涉及到各种行业计算模型的,一般都会采用开源GIS,因为它本身的扩展性比较好,更容易对接已有的算法和分析模型。
在技术上,商业GIS与开源GIS基本上是相互并进局面。商业GIS好的模式很快会在开源GIS上出现,而开源GIS的技术,却又很快的在商业GIS中得到支持。所以,GIS的技术界就是一朵奇葩,从来不存在真正的技术上的壁垒,只存在商业模式上竞争。
为什么选择开源GIS
商用GIS发展了很长的时间才有了比较成熟的今天,如果从 Esri 的发展史来看,从1969年成立到现在的GIS帝国,足足发展了几十年的时间。但Google 从搜索引擎到地图应用,用了几年的时间便将整个专业GIS拉下神坛。Esri 可以说是全球最大的GIS技术供应商,而Google则是全球最大的GIS应用厂商(尽管Google从来不提GIS字眼)。从这个关系可以看出,大玩家玩到最后,还是商业模式的事情,而跟技术本身无关。
笔者十几年的GIS从业经验,见证从桌面GIS到组件式GIS,再到WebGIS、移动GIS、云GIS、GIS门户等一系列的变化,也见证了多个GIS厂商的崛起和消亡,互联网地图对传统GIS产业的冲击,资本和政策一次次改变GIS产业的格局。但这些年来,技术和商业模式都在改变,政策也在改变,但专业GIS本身似乎进步不太明显。无人机技术将摄影测量部分发挥到极致,物联网方面表现出对地图的极大需求,但仅限于测量和地图应用,对GIS来说,没有革命性的东西。看起来似乎与采用什么技术,没有任何的关系。
开源GIS很难驾驭,维护起来相对麻烦,既要找非常懂计算机的,又要非常熟悉GIS的技术人员。如果投入到项目中,后期维护还是个相当头痛的问题。如果用在项目上,那它绝对是一种灾难。因为大多数项目都是追求短平快、可持续、可维护,注定开源GIS在大部分项目中难以得到有效使用。作为项目经理,只要不是项目预算明摆在那里,一般都不愿意用开源GIS。毕竟羊毛出在羊身上,总会有客户为商用GIS平台埋单,毕竟商用GIS平台也属于其资产的一部分。
但作为产品经理,需要考虑的事情则需要更加长远,更加全面。因为一款成功的产品,是会用在很多项目上。
很多人会调侃,使用开源技术只有一个原因:穷!
这种说法在传统IT行业也许有成立的时候,但放在GIS方面,绝对是不成立的。因为GIS项目最大的成本根本不在软件平台上,将近一半以上的开销都在数据,百分之二十左右在与后期维护。
而作为产品研发,更多的应该考虑以下几点:
- GIS 产品的技术路线
- 开发人员的知识结构
- 产品经理的驾驭能力
技术路线会决定产品的最终形态。例如在GIS开源平台上选用 MapServer 、MapWindow还是GeoServer ,决定了后台实现的开发语言。相应匹配的技术人员、开发框架都需要进行调整。不同的开源授权模式,还意味着是否需要将一部分的成果公开回馈到社区或组织。对于将开源产品转化为商业产品来说,这都是一种最终形态。
开发人员的知识结构是最麻烦的事情。有时候在技术路线选型之前,需要先考察团队成员的技术结构。如果团队中都是搞Java的人员,那意味着 MapWindow这种基于VC的平台,很难从底层代码方面进行改进;如果是.Net 人员,则需要大量的时间去研究Java,才能更好的结合 GeoServer 进行开发。最要命的是技术团队中没有从事GIS的人员,一群纯IT人员,就算技术再牛,也很难在短时间内去理解GIS。
产品经理的驾驭能力非常重要,在产品研发中,他往往扮演一个无所不能的角色。对于一般的GIS产品来说,并不能跟 ArcGIS 和 SuperMap这样的产品来比较,它主要实现一些特定的GIS功能,肯定不会有所谓的架构师、GIS 分析师、GIS 数据库设计师等存在,这些工作必然会全部压在产品经理身上,进入他不从事基础的代码编写(有时候也可能需要亲自写一些关键代码)。所以,产品经理肩负着GIS培训、软件架构、底层GIS数据库设计、GIS分析逻辑等一系列的工作,非常折腾人。
对于产品研发来说,可控是非常重要的。也就是说,需要适应需求的变更,能够底层扩展,能够修复Bug,也能提升性能,还尽可能紧跟主流IT,还得跨平台。这都是可控的要求。
开源GIS 一般分为开源GIS桌面软件、GIS服务发布平台和GIS开发框架。这三部分的主流开源软件基本上都是跨平台的存在,大部分还提供源代码,对于可控性来说,是非常足够的。
最困难的不是怎样去做产品,而是怎样招到做产品的人。从事GIS专业的人,大部分都是有测绘基础或者GIS基础的人员,这些人一般都是专业出身,基本上都是商用GIS的死忠(包括笔者在内,从学校到参加工作,用了十几年的商用GIS软件)。由于商用GIS相对来说比较友好,集成度高,基本上就是拿来即用,也不需要太多的去研究底层技术和底层原理(这也是GIS专业人员的通病)。如果切换到开源GIS,这就比较别扭,各种的水土部分。而纯计算机专业的人员,没有GIS基础,虽然能够快速的实现编码,但GIS的各种数据和概念都不清楚,也能难是实现比较好的GIS产品。
这个时候产品经理就相当重要了。产品经理必须是一个GIS专业人员,不然无法驾驭整个团队和产品。适当的GIS基础培训,是非常必要的。结合团队的情况进行技术选型,会事半功倍,并且效果明显。砍掉不必要的技术环节,降低软件产品的复杂程度,才能尽可能适配其他IT环境。
例如团队成员Java 工程师,没有GIS工作经验,不了解GIS数据结构,还没提说过空间数据引擎,也不知道GIS地图服务,勉强算是做过一些如百度、高德地图的前端开发。但胜在代码功底扎实、熟悉各种Java框架和前端JS框架,各种设计模式,规范化程序接口设计等等。优势和劣势都非常明显,这种情况可能会比较尴尬,但这种情况非常普遍!因为能够找到一个非常熟悉程序设计的GIS工程师,很难!其中的原因不便探究了。
这种情况下,作为产品经理会采用什么的技术路线?为了减少不必要的麻烦,降低产品的技术难度,推荐将GIS术语全部屏蔽!这看似不可能,但实际上偏偏是可以操作的。
开源GIS也发展了很多年了,无论从 GIS数据引擎还是地图发布平台,空间算法工具还是前端开发工具,都非常成熟。但如果一定要完全按照GIS的方式去切割,每一个部分都需要让团队去研究,这相当于重新培养GIS技术人员,是相当不可取的。
针对纯IT人员,无GIS基础(产品经理除外),则需要考虑从传统IT技术人员的思维方式着手。数据库+服务端逻辑+前端 这种方式最为常见,并且为他们掌握得最好的方式。传统GIS看起来几乎不可能,但互联网搅局后的GIS行业,也渗入了物联网基因,“高贵的”GIS血统也逐渐“平民化”。那么,可操作方式就再也不是所谓的各种GIS技术组件了。例如,对于纯Java 人员来说,可以使用 PostgreSQL+PostGIS+Java框架+Leaflet前端框架+GeoJson数据格式去编写一个完整的GIS产品,使用开源的 GeoTools(开源的GIS分析工具 jar包)完美实现空间数据处理和分析。这样基本上很少出现专业GIS的各种部件,完全使用传统 IT 技术去实现产品构建,开发人员使用自己最为熟悉的方式 SQL+JavaScript 去实现产品研发。如果后期需要对数据进行发布,给其他主流的GIS系统进行对接,那么再使用GeoServer进行服务发布,将其发布成标准OGC服务,毕竟PostGIS数据格式是标准的空间数据格式。
如果深入了解这些技术,就会发现采用这些开源框架的好处。
- 轻量化。每一个部件都是轻量的。PostgreSQL 稍微重一点,但对于商用数据库来说算是非常轻量了,而且性能优秀。
- 易于融入支流IT。无论是使用后台开发框架还是前端框架,都能很好的结合起来,例如后台使用Spring,前台使用Bootstrap ,都没有丝毫问题。
- 跨平台部署。每个部分都能跨平台,甚至可以将一些服务放在容器内(传统GIS服务都是重量级的,目前根本上不可能放容器上运行)
- 适配终端。Leaflet就是一个非常好的例子,对于手机浏览器有非常好的支持。对比传统的 OpenLayers,在这方面它显得太优秀了。
- 数据标准化和通用化。PostGIS 能够提供生成 GeoJson 格式,很多前端技术能够直接支持。再不济,可以将 GeoJson 作为Json格式去解释,避免GIS数据格式转换。
- 产品架构可以删减。需要GIS服务,可另外配置其他的GIS发布平台,以降低其他软件的依赖。
本章总结
开源GIS融入了非常多互联网基因,并且对传统GIS做了不少的改良,降低了GIS技术的开发门槛(笔者是这样认为的,最起码让非专业人士都能参与进来)。如果要研发一款面向某些行业的应用级的GIS产品(非项目),笔者还是相当推崇使用开源GIS 技术。
更多的GIS主流和非主流技术,可以持续关注CSDN的GIS制图乐园,以及微信公众号【GIS制图乐园】。BY 李远祥
以上是关于什么是开源GIS的主要内容,如果未能解决你的问题,请参考以下文章