博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[随感]GIS开发的困惑
阅读量:5828 次
发布时间:2019-06-18

本文共 2024 字,大约阅读时间需要 6 分钟。

  从事GIS应用开发也有3年了,但是做了些东西自己始终不满意,不是不稳定就是效率低,不是功能杂就是不实用!

  首先是AE开发,我必须说自己很欣赏ArcGIS的软件设计架构和思想。但是在开发的过程中也确实遇到了很多问题。首先是效率问题,Oracle的效率很高,可是建立在Oracle之上的SDE加载矢量图层,添加、删除要素类却很慢,这个让人很费解。不全是数据量的问题,即使是一个图层也会有这样的问题。AE过于庞大了,安装了ArcEngine占用了太多的空间和内存,毕竟是互操作封送了数据。不知道“嵌入互操作类型”能不能解决这个问题!

  其次是扩展性上,可能没有任何一款软件能够开放到如此程度吧,想扩展自己的数据格式或数据结构非常困难。尤其是应用GIS到工程领域还是有很多问题的。当然也有这样的原因,由于AE的庞大,开发者往往不具备足够的知识来洞悉其中的门道。确实,作为一名GIS专业的毕业生,整个大学和研究生阶段都没有系统的讲授软件底层的知识。比如GIS算法,计算机图形学,就算讲了也都是皮毛,对于数据结构和数据库等应用技术也都是自己摸索的。诚然学生最重要的是培养自己的学习能力,但是在从业后估计少有人能够深入的再研究这些基础的东西了吧。没有系统的知识也很难去深入的进行二次开发。

  第三个是稳定性,这个主要是开发者的原因,当然也有AE的问题。项目开发总是太庞杂,太乱。

  现在所在一家三维公司有一个自己的平台,从扩展性方面来说确实是提高了很多,可以做自己想要的渲染结果,但是却也是有诸多问题:

  一是程序版本很乱,不同版本的Dll可能有不同的问题,可能会缺失其它版本所具有的功能。

  二是整合了很多开源的代码,拿来主义,存在很多不稳定因素。而且大家都懒的自己写写东西,连验证有时候都不愿意去做。项目任务分配时候根本不会给你那么长的时间。一旦你说功能有了,领导就认为修改是分分钟的事情。

  三就是需求,项目的需求总是一变再变,导致做的系统总是很庞大,开发都没有心情了。GISer本来不具备行业知识,这个可以学习,但是想专业!难,很难,可能也只是能够装模作样罢了,这样浮躁的社会,从事三五年就能把行业的业务知识搞清楚了吗?我觉得很困难。

  四软件的架构设计非常混乱,总体框架设计、权限管理总是很乱,名义上是插件式、RBAC,但是也仅此而已。功能总是要完成了之后才说权限的问题。GIS不知道是不是都和主流的软件开发脱节,不注重软件架构的分层。图形数据不好分层,业务上明明就是信息管理,却没有什么ORM映射,逻辑分层这样的东西。可能GIS专业人员当项目经理根本就没有很多软件设计的经验吧。信息管理系统和图形数据处理系统区别很大,和数据分析的区别很大,参与的项目总是把所有的功能杂揉在一起,一个系统既包括信息管理,又包括图形编辑处理,还包括数据的计算和分析。对于GIS图形软件尤其是3D软件,采用网络总是要考虑数据的传输和加载问题的,加载矢量数据越多越影响系统的运行效率,如果有影像数据就更慢了。业务分析功能往往是有中间结果的,这些数据没有必要上传到服务器,所以保存在本地。于是系统就成了这个样子,可以加载基础地图数据,可以根据业务需要在SDE中新建各种图层,支持图层版本注册和编辑。有的时候需要从Map中加载图层,有的时候要从SDE中加载数据,有的时候要从非空间的Oracle库中取数据。从Map和非空间数据库中获取各种图层、属性和参数数据进行计算并将分析结果保存在本地,在计算的的过程中可能需要从本地加载一些数据进行分析。这样的系统总是很慢,加载数据慢,分析慢,连信息管理都要卡,可能还会莫名其妙的崩掉。一会是联机数据一会是本地数据,我觉得很别扭,这个和ArcGIS这样的通用平台有什么区别?只是SDE定死了,一个非空间库定死了。其实ArcGIS完全可以实现啊,而且分析功能用的还是GP。个人感觉如果是信息管理干脆做个B/S的得了,这样还实用些,本来就是分权限管理的吗!如果是用于工程设计的软件的话还是做个单机的算了,像sufer软件那样。把ArcGIS那套版本机制拿过来用也没有必要非得联机啊?人家本来就有离线版本啊。设计完了可以提交文件也可以入库啊!更扯的是本来已经很庞大的系统了还要同时支持联机和脱机!在加上没有分层设计,所以各种条件判断。为了保证程序不出问题,各种try-catch-log。

  相比之下感觉GIS行业中Web地图的开发确实不错,比如百度、高德。首先需求明确,面向的用户群体是所有普通的老百姓。二是Web开发相对来说要简单一些,可借鉴的东西很多。不需要特别复杂的空间分析,行业应用也要少。三是这些都是大的网络公司搞的,或者说是计算机背景的人搞出来的,技术实力比GIS专业的强。现在的GIS项目还不是很透明啊!

转载于:https://www.cnblogs.com/yhlx125/p/3463387.html

你可能感兴趣的文章
Django 多表联合查询
查看>>
logging模块学习:basicConfig配置文件
查看>>
Golang 使用 Beego 与 Mgo 开发的示例程序
查看>>
+++++++子域授权与编译安装(一)
查看>>
asp.net怎样在URL中使用中文、空格、特殊字符
查看>>
路由器发布服务器
查看>>
实现跨交换机VLAN间的通信
查看>>
jquery中的data-icon和data-role
查看>>
python例子
查看>>
环境变量(总结)
查看>>
ios之UILabel
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
1月9日学习内容整理:爬虫基本原理
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>