地理信息技术,从开始接触到以此为工作,经历了8年的时间了。自己也经历了一个较长的GIS实践过程,同时也是学习和思考的过程。起初只几个行业的使用,到现在五十多个行业的全面应用,地理信息技术已经被大家普遍接受和认可了,从上文的留言可以看出从事这个技术或了解的人也很多,很难想象在十年前当有人问我听说过地理信息没,我一脸茫然。
地理信息软件在现在看来纷繁复杂,从开源软件到商业化软件,比比皆是。如何理解地理信息呢?是跟随新软件的推出而学习,还是在学校看制图学,或是搞本体的理论研究?很不幸这些我都经历过,但这些都不是我想要的。我认为做为技术,应该从实用主义出发,能解决问题提高工作效率的就是好技术。2010年有幸能和ESRI的精神领袖Scott Morehouse交流,大师应该是GIS领域的技术大牛了(ArcGIS框架设计是此人历时多年的神做),在大师看来目前的GIS技术理论基石已经很坚实和完善,ESRI的下一步发展将是开拓应用领域,挖掘行业需求,在大师看来随着IT的发展GIS会以某种新的形式出现,但是本质东西还是那些。因为工作原因,做得越多,发现GIS的学习思路应该转变一下。看过GIS开源,但是开源软件不仅笨重,而且极为混乱,对于初学者很难掌握,事实上我也比较关注开源。GIS的书籍已经很多了,但是我想说,这些书大部分都是商业软件的开发经验,或者是介绍GIS的原理,这些书实践性不强。
对于地理信息技术,区别于其他IT技术的本质东西,是地理建模,简单理解就是描述地理对象。本文在此就是论述地理对象。很多人从事GIS开发,却也从来不考虑这些问题,但是并不妨碍他们去理解地理对象,他们知道全球范围的小比例尺下,城市可以表示为点,大比例下城市可以用多边形来描述,这些是比较容易理解,但是如果涉及物流的配送,有站点有道路,如何描述他们之间的关系呢?复杂必定也是由简单构成,这是ESRI的《modeling our world》一书体现的。在我看来ESRI的精华都凝聚在了这本书中了。
那我们如何实现最简单的地理模型抽象呢?区别于书上的一堆描述,你可以认为就是:点,线,面。这种抽象就能用计算机语言来描述了。当然完善可靠且能被计算机语言所描述的模型才是最有价值的。当然地理模型也必须是可扩展的,这样才能最终在多个领域生根发芽。纵观GIS的发展过程,无不是围绕点,线,面开展的。计算机制图学的发展转折点就是在地图分层管理上,所有的GIS都有层的概念,而这些层就是用来管理点,线,面的容器。当然在层的基础,有拓扑概念的出现,有空间关系判断和分析的出现。
很多人此刻要问,这和我要写GIS软件有什么关系?如何体现在我的软件设计中呢?不忙,把领域模型搞清楚了再开始写动手,思路才会清晰。前文,我已经论述了如何绘制,事实上每个过程都是为地理信息的绘制做准备的,事实上我后面会介绍如何投影,以及如何设计动态投影,掌握了这些在IPad,或者Mobile上实现过程都类似。
在介绍自己的设计思路时,我先介绍一下ESRI的底层架构。事实上ESRI的ArcMap架构在表象上给我看到的是地理数据的分层管理(此处最标准的说法为Geodatabase的Schema),用户只需要选择图层的可见与不可见,以及加载点,线,面图层,这些过程基本是所有GIS软件的标准化操作了,那它的背后又有哪些实现技术,哪些特点呢?很可惜如果不做ArcGIS的扩展背后的故事都是不可知的 ,总结下来,发现其实也非常简单,就是三个过程依次控制三个绘制过程。ArcMap显示地图的时候,会在内存中创建三个DC,第一个是管理所有图层渲染的DC;第二个是Annotation的绘制DC;第三个是选择渲染的DC。在屏幕显示出的绘制效果就是这三个DC依次叠加显示的效果。
在框架层面上ArcMap依次把第一个DC依次传递给每个层,由每个层自己单独控制在此DC上的绘制内容。对于抽象了地理对象本质的点,线,面,通过绘制就能体现出地理概括了。Annotation比较特殊,需要在地图最上面显示(Label等等),所以就放到了第一个DC的之后才开始。图层选中效果的体现当然也就放在最上面了。但是这个框架也有一个先天不足的地方,此处不多说。
有了上面的铺垫,软件设计可以参考者自己往下写了,设计一个Layer类,设计注记类,设计点,线,面模型(直接参考OGC提供的标准,当然直接ESRI的模型更好,关于模型的优劣不想多说,只说应该多考虑效率)。。。
ESRI线模型的参考
ESRI面模型的参考
不想多说实现细节了,此间考虑效率会用很多的C++模板,由上面过程的剖析,实现难度不大,但是要想写得完美那也颇费尽的,只是多个图层的叠加体现效果自己完全能够绘制出来的,细节可以通过详细设计来完善。此处只想多说一句,关于绘制效率,有必要关注空间索引,你懂得。
此处实现需要一些时间,等实现了再贴些图,大家讨论。如果这边的框架可以顺利做完,MO的大部分功能就都体现出来了。大部分的GIS平台也就到此而已,展示地理信息,那是GIS?
下次的主题是绘制模型和地理模型的统一。
分享到:
相关推荐
在中国存储市场浸淫多年的浪潮存储提出了自己的解决方案——平民化容灾。浪潮认为,用户虽然都需要容灾,但是由于应用环境和自身状况的不同,对于容灾需求的级别也有所差别。通过对用户需求的深度分析,结合其需求...
模仿电影场景画面,ppt动态模板。
医疗纪录片的平民化叙事——以《人间世2》为例.pdf
互联网行业序幕揭开ChatGPT将AIGC推向平民化时代-230214-32页.pdf
BIM技术平民化运用.ppt
信息时代的科技新闻需要平民化.pdf
BIM技术平民化运用.pdf
信息时代的科技新闻需要平民化 (2).pdf
信息时代的科技新闻需要平民化 (1).pdf
人脸识别门禁考勤进入平民化应用时代.pdf
“平民化”时代 目录 应用创新 AI 能做什么? AIGC 如何赋能传统互联网? 技术驱动 发展趋势 内容质量有待优化 版权问题尚存争议 商业模式仍在探索中 投资标的 图表目录 图表 1:ChatGPT 引爆行业前,2022 年 ...
中国产业智能化白皮书2019:技术平民化推动产业智能化落地.pdf
中国产业智能化白皮书2019:技术平民化推动产业智能化落地
【浦银国际】序幕揭开:ChatGPT将AIGC推向“平民化”时代.pdf
互联网-序幕揭开:ChatGPT将AIGC推向“平民化”时代-230214
【浦银国际】序幕揭开:ChatGPT将AIGC推向“平民化”时代.pdf.zip
Web开发的平民英雄——PHP+MySQL,网上很多pdf版本,但是没有源代码,我这里献上
从帝王到平民——炙手可热的主流CPU性能大比拼.pdf
seo平民化傻瓜式操作工具 seo平民化傻瓜式操作工具 seo平民化傻瓜式操作工具
无线光纤技术在中国以及全世界的电信行业正引起广泛关注。原因很简单:无线光纤技术可以在城域光网之外提供高带宽连接,而成本只有在地下埋设光缆的五分之一。 光纤网络正以稳定的步伐在全球展开部署。但是 ...