zoukankan      html  css  js  c++  java
  • 作为产品经理为什么选择开源GIS

    以下转自CSDN李远祥  原文

    作为产品经理为什么选择开源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 李远祥

  • 相关阅读:
    ubuntu下文件安装与卸载
    webkit中的JavaScriptCore部分
    ubuntu 显示文件夹中的隐藏文件
    C语言中的fscanf函数
    test
    Use SandCastle to generate help document automatically.
    XElement Getting OuterXML and InnerXML
    XUACompatible meta 用法
    Adobe Dreamweaver CS5.5 中文版 下载 注册码
    The Difference Between jQuery’s .bind(), .live(), and .delegate()
  • 原文地址:https://www.cnblogs.com/yansc/p/13750019.html
Copyright © 2011-2022 走看看