从事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项目还不是很透明啊!

[随感]GIS开发的困惑的更多相关文章

  1. SuperMap iObject入门开发系列之一组件式GIS开发平台介绍

    本文是一位好友“炀炀”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢.平台介绍:SuperMap iObjects Java/.NET 是面向GIS应用系统开发者的组件式GIS开发平台,具有强 ...

  2. GIS开发之数据查询

    在GIS开发之我们经常会用到属性查询和空间查询,特别是在数据量比较大的时候,如何提高查询效率成为一个问题 1.属性查询 对于属性查询,除了必要的建索引之外,我们还应该考虑使用字段缓存:减少查询字段,减 ...

  3. Android GIS开发系列-- 入门季(14)FeatureLayer之范围查询

    Android GIS开发系列-- 入门季(5),这篇文章中,我们知道如何去查找要素.现在有一个需求,查找某点5000米范围的要素,那如何来做呢?首先我们需要在地图上画个5000米半径的圆,然后根据Q ...

  4. SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性

    SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...

  5. 飞锐GIS开发基础系列

    3s知识库和GIS科研站,未经允许,禁止任何形式的复制.转载和传播.联系方式:276888624@qq.com 品GIS,品开发,品人生...... http://www.3sbase.com/3sb ...

  6. GIS开发离线地图应用-初识gis

    http://www.cnblogs.com/kevin-zlg/p/4611671.html 最新公司需要做一个基于gis地图的应用系统,由于之前公司项目中的电子地图模块都是我开发的,所以这个新系统 ...

  7. Web Map Gis 开发系列索引

    Google Map API Version3 :代码添加和删除marker标记 谷歌地图地理解析和反解析geocode.geocoder详解 Google map markers 百度与谷歌地图瓦片 ...

  8. GIS开发环境全面升级10.1

    最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看. 之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracl ...

  9. Engine许可初始化 - gis开发初步

    当需要对SDE中的要素类和要素数据集(矢量和栅格)进行编辑时,例如在调用IFeatureDataset的CreateFeatureClass方法时,报错提示: The application is n ...

随机推荐

  1. FairyGUI和NGUI对比

    一直在做Unity方面的游戏开发,经同事介绍了解到有这么一个GUI能提供跨平台的能力,有独立UI编辑器,而且功能强大,能够组合成复杂的UI界面,可以导出到Unity,Flash,Starling等,文 ...

  2. [extjs] extjs 5.1 API 开发 文档

    官方博客发布了这个新版本说明,英文文章请戳下面 http://www.sencha.com/blog/announcing-sencha-ext-js-5.1/ 翻译版本请戳下面: http://ex ...

  3. Java精选笔记_其他IO流(ObjectInputStream、DataInputStream、PrintStream、标准输入输出流)

    其他IO流 ObjectInputStream和ObjectOutputStream 如果希望永久将对象转为字节数据写入到硬盘上,即对象序列化,可以使用ObjectOutputStream(对象输出流 ...

  4. linux安装oracle11g步骤

    1. 修改用户限制 root用户:修改 /etc/security/limits.conf 文件,加上下面的参数 oracle soft nproc 2047 oracle hard nproc 16 ...

  5. redis安装之zmalloc.h:55:2: error: #error "Newer version of jemalloc required"错误

    redis是C语言编写的软件,安装前需要编译,需要gcc编译环境,确认安装gcc编译环境后(安装gcc命令:yum install gcc-c++) 在redis解压目录下,确认有Makefile文件 ...

  6. Apache nutch1.5 & Apache solr3.6

    第1章引言 1.1nutch和solr Nutch 是一个开源的.Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具. Solr 拥有像 web-services API 的独立的 ...

  7. 在ubuntu 10.04 上QGIS的安装步骤

    进入管理员账户后,打开/etc/apt/sources.list. 添 加 deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubun ...

  8. java高级---->Thread之CyclicBarrier的使用

    CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).今天我们就学习一下CyclicBarrier的用法. Cycl ...

  9. java框架---->Xstream的使用(一)

    Xstream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称.今天我们就简单的学习一下xstream的用法. Xstream的简单实例 项目的结构如下,设计到三个类 ...

  10. html to pdf小工具,支持evernote导出的html和firefox插件scrapbook

    周末花了一天时间用wpf写了一个html转换为pdf的小工具. 已经在win7 32位 和win8 64两台机器上测试,目前基本可用,特拿来分享. 程序下载地址:http://pan.baidu.co ...