乐于分享
好东西不私藏

泛GIS软件项目不只是画地图,究竟“特”在哪里?

泛GIS软件项目不只是画地图,究竟“特”在哪里?

    不知不觉已在软件行业二十年了,有很多的体会与感想一直憋在肚子里面,其中我常听到的一句话就是:“你们做GIS软件,就是画个地图吧?”

    每次听到这话,我都忍不住苦笑,要真有这么简单,我在这个行业这么多年就可以少走弯路、少踩坑了。

    首先声明一下:我在标题上的“泛GIS”这个词可能是我拍脑袋发明出来的,其实还有个词“轻GIS”可以平替。因为随着计算机技术、互联网技术等技术不断迭代,我亲身体会到我国GIS发展已在各行各业广泛应用、开花结果了,除了政府、企事业单位、还有个人都离不开GIS。但是很多的项目案例又不断告诉我,很多GIS应用都是轻量GIS,不是强GIS

    言归正传,虽然泛GIS应用非常普及,但涉及用户千差万别。对于刚接触GIS软件项目的开发者、客户、第三方等,都容易陷入一个误区:觉得泛GIS软件项目的核心就是“画好地图”,只要把地图可视化做的漂亮,图层叠的整齐,项目就稳了。

    但事实是,泛GIS软件项目,远比“画地图”复杂得多,它不是单纯的“地图展示”,GIS不再是锦上添花,而是可以做到雪中送炭。它是“空间数据+业务需求+技术落地”的综合体,它属于软件项目的一个分支,有普通IT项目的属性,但还有普通IT项目没有的“特有属性”,正是这些属性,决定了项目的成败,也是新手与老炮的差距。

    今天就结合我这些年踩过的坑、做过的20年软件项目实战经验,跟大家好好讨论一下:泛GIS软件项目究竟“特”在哪里?

    先跟大家简单聊一下我曾经遇到的一个教训吧,详细的复盘我打算在后面单独进行分析总结。我记得之前有个“十三五水专项”课题项目,对太湖流域水生态环境进行综合监管,其中有个监控大屏可视化展示,由于我认为是科研课题,为了给领导的项目汇报演示出彩,我请美工UI精心设计了看似高大上的大屏展示效果图,我带着团队一头扎进地图绘制里,每天加班调整图层样式、优化地图缩放效果,花了整整10天,做出了一套颜值拉满的地图界面。本以为甲方会满意,结果演示的时候,甲方一句话就把我们打懵了:地图做得挺好看,但我要的隐患排查功能在哪里?遥感影像历史数据怎么查怎么对比?有水生态环境变化趋势预测吗?这些地图上都没有啊!” 当时我真的无地自容,恨不得在演示现场挖个地洞钻进去算了。

    后来我才明白,泛GIS软件项目的核心,从来不仅仅是“画地图”,而是“用地图解决用户的业务问题”。它的“特殊性”,仁者见仁智者见智,我总结下来主要体现在4个方面,每一个都关系到项目的成败,新手一定要重点关注。

  • 第一个核心是空间数据,而非地图展示”——地图只是数据的载体,空间数据质量才是项目的生命线很多小伙伴尤其是新手对于泛GIS软件项目建设,先急着业务分析,他们甚至不会想到这是一个泛GIS软件项目,当需求里面提到地图展示时,就简单理解画个地图页面就可以了。但实际上,GIS软件项目最大的特殊性就是“空间数据”,需要侧重空间数据采集、处理、建库和应用。地图只是数据的可视化呈现,数据质量不过关,再漂亮的地图也毫无意义。我做项目时,一定会在分析业务需求的同时,把数据梳理清楚,尤其要区分哪些数据要跟空间位置进行关联的?这些数据类型是点、线、还是面?是否需要创建空间数据库?等等。

  • 第二个地图是与业务结合的、且强绑定业务的”——不是画好地图就完事,要贴合实际业务场景。

    GIS项目的需求不是与地图割裂的,而是需要考虑在地图上如何与具体的业务场景强绑定,且很多需求会随着业务推进不断调整。更关键的是,很多甲方自己也说不清楚具体需求,只知道“我要一个带地图的系统”,但不知道这个系统要解决什么业务问题、适配什么场景。这就需要我们作为项目经理,主动挖掘隐性需求,结合业务场景,把模糊需求落地。

    这里分享一个实战技巧,新手可以直接用:对接GIS软件项目需求时,不要只听甲方说“要什么”,更要问“为什么要”“用在什么场景”“解决什么问题”。可以用“3个问题”挖掘隐性需求:

       1.这个系统主要给谁用?

       2.使用者每天用它做什么工作?

       3.用这个系统,以及系统中的地图,能够解决什么痛点?

    把这3个问题搞清楚,需求就不会跑偏,也能避免后期返工。

  • 第三个“特”:协同是“跨领域的”,需要兼顾“多技术交叉、多部门联合”。

普通软件项目,团队成员大多是程序员、测试人员、UI协同起来相对简单。但泛GIS软件项目不一样,它涉及跨领域协同,例如需要复合技术,因为GIS本身就是计算机技术、测绘技术、地图学等多种技术领域的复合体。如果项目建设中缺少懂GIS技术的,这个项目将很难让甲方满意,也往往体现不出乙方的专业性。

多部门联合是指乙方在项目建设过程中,通常一个部门难以完成项目,可能需要联合数据采集部门、数据处理部门等部门成员的参与。当然甲方的业务如果涉及多部门,也需要协调多个业务部门成员参与进来。对于新手项目经理来说,做好跨领域协同,就能解决项目80%的协同问题。记住:GIS项目不是一个人的战斗,也不是一个部门的战斗,而是多方协同、合力推进的结果。

  • 第四个系统要“定义坐标系”,坐标系是GIS软件项目建设的根基。

新手做软件项目的时候,很容易忽略系统的“空间参考”,它是GIS项目最隐蔽的杀手。记得我曾经带过的某城市综合管网项目,当初没发现程序员在开发时将WGS84CGCS2000混用,等到项目快要验收时才发现与实测偏差21米。跟项目团队复盘时,该程序员告诉我,她认为这两个坐标系几乎差不多。还有在做太湖流域某监管平台项目时发现地图上很多污染源企业都跑到太湖里面去了,数据组成员告诉我在数据治理时忘记坐标检查了。这些问题要么是对GIS技术一知半解、要么是疏忽不重视造成的。其实坐标系涉及地球椭球体与基准面、投影等参数定义的,具体后面我单独再总结一下关于为什么坐标系这么容易采坑?

关于坐标系,最后送你三句话,每个泛GIS软件项目启动前记得提3个问题:

Ø你的原始数据是什么坐标系?

Ø你的系统底图是什么坐标系?

Ø你的输出成果要求什么坐标系?