3sNews讯 为期两天的2012地理信息开发者大会(简称:WGDC)在北京国家会议中心举行,本次大会以“新技术、新模式、新商业”为主题,是地理信息领域最具影响力的技术性盛会,其宗旨是不断引领和促进地理信息技术的创新与变革。在第二天“Map+与开发者训练营”分会场,来自OSGeo的中国联系人高昂发表了题为《主流开源地理信息相等近况及最新发展》的演讲。
以下为文字实录:
各位朋友,大家下午好!
我今天下午准备为大家分享的题目是《主流开源地理信息相等近况及最新发展》。刚才第一个话题我听了一下,是魏凯明老师给大家的免费大餐的话题,这个免费大餐是一份免费的套餐,我这边给大家准备的是免费的自助餐。当然我这个自助餐可能有一些材料也不是特别全,但是原材料都会给大家,所以有些应用可能需要大家动手去烹饪一下,这样做出来的菜才好吃,而且可口。
下面进入今天的主题。首先给大家简单介绍一下开源地理信息以及免费地理信息系统相关的开源组织和标准化的一些情况。首先要提到的是开源地理信息的联盟,OGC的职责就是为所有这些开源源代码地理信息社区的开发者提供统一互操作的标准,包括我们可能部分朋友用过的OGC的WFS,就是网络地图服务,网络特征服务以及WPS网络数据服务,这些是OGC出台的标准,主要是帮助这些地理信息的软件去实现互操作。此外,还有一些数据格式方面的标准,也是OGC制定的。包括像互操作的标准,以及空间数据服务的标准等等。
我今天讲座所代表的组织OSGeo,在中国有一个对口的OSGeo的中国中心,这个中心主要的工作就是帮助大家,特别是本地的这些开发者去了解最新的开源地理信息的进展。这个组织其实是一个虚拟的组织,所有的成员都是这个社区的一些爱好者或者是开发者自发组织起来的,我们平常联系或者是沟通也是通过网络邮件或者是一些不定期的聚会这种方式。OSGeo这个国际化组织网址是osgeo.org,本地的组织就是osgeo.org.cn,之前我们曾经有过一系列的开源地理信息相关的讲座,主要也是在北京,因为毕竟在北京是开发者最集中的地方,而且爱好者也最多。在网上的联系和沟通,有很多朋友都曾经参与进来,跟我们一块就这个问题进行讨论,或者是出谋划策。总之,大家都是用一些个人下班之后的时间去参与这些事。如果大家感兴趣的话可以参与到这个讨论组里面,上面是OSGeo国际组织的讨论组,下面是OSGeo中国建立的讨论组。
下面我们来看一下OSGeo到底给大家提供了哪些菜品和原材料,才能给大家烹饪出来一份可口的大餐。OSGeo的项目主要分为几个类别,第一个就是开放的地理信息的内容,比如说矢量数据和栅格数据库。还有基于GOS,可以实现叠加分析、拓扑分析等等。同时有一个Java的实现,这套库也是其中使用Java语言实现的空间分析的操作函数库。此外还有给开发者提供的库,有一个桌面的开源技术项目,就是用的这个功能比较多。还有GeoServer,是在网上提供空间分析操作的实现。还有地理信息开源的中间件,在数据库这一端加上空间拓展,帮助开发者去把这个数据以矢量和栅格的形式存放,主要是矢量的形式存放。它的功能是去实现路径分析,还有一些启发式搜索,当程序员查找路线的时候,不需要重新写这个算法,可以通过这一套库实现自己的应用。
Web Mapping类似于百度地图、搜狗地图等各种各样应用的支持。首先后端的服务器,像Deegree和GeoServer,前端像Mapbender、MapBulder,现在最流行的就是MapGuide Open,大家共享GPS的数据,给其他人提供服务或者是下载,都是免费的。刚才还有朋友问到百度的地图是不是经过经纬度的加密,或者是偏移这样的操作。其实国内的地图肯定是有这样的情况,但是如果要是使用这样的数据,可以得到一套完整的,没有经过任何偏移或者是其他的这种加密手段,是完整的市场数据可以在这个上面。
桌面的应用,以前我们使用其一些桌面应用的时候,需要做一些处理或者是类似的分析和操作。像开源这一块,Grass GIS,还有就是OSSIM是针对遥感分析的一套桌面应用。还有Quantum GIS,是拿桌面数据库写的跨地理信息平台的桌面应用。还有一部分是一些其他项目的,比如说GeoNetwork,是地理信息服务的工程,把各个单位发布的,包括海文、气象的地理信息服务都统一注册到这个上面去做一个原数据管理和分类。以及其他的还提供了很多视频数据等等。
我们下面来具体看一下哪些项目有什么最新的特性或者最新的进展。这个图是两套不同的工具做的地图出图的对比,ArcMap就不介绍了,大家很熟悉,这边是QGIS做的图,同样也可以添加经纬度和比例尺等各种地图需要的渲染,出来的不比商业的差,而且甚至于可能用起来更顺手一些。这张图是全站的开源的GIS架构,从底层开放的操作系统到中间件,然后再到Web Server再到数据库,再到上面空间分析的中间件,矢量、栅格、数据处理的中间件,再到桌面和Web的应用等等。这个里面的软件站其实可以覆盖我们所能想到的地理信息应用里面的各个方面,所以说这是一个大餐,而不仅仅是一个套餐,或者是一份盖饭。
下面一下刚才提到的Grass GIS,Grass是一个历史非常永久的开放源代码的操作系统,最初来源于美国军方的项目,最初使用地理信息的还是部队里面做决策分析,或者是战场地形分析。这一套大概有将近20年的发展历史,目前它已经是针对不同的平台,比如说Windows平台、Linux平台,包括Mac都有移植过来的版本,可以帮助大家做矢量分析、栅格分析等数据分析的工作。其次它提供了一大堆的命令,这个命令的好处就是说,大家可以在自己的软件里面调用这些应用,Grass帮开发者去实现了图像处理、栅格数据处理、矢量数据处理的页面,可以直接在命令行打开调用这些命令,去完成图像的操作。好处就是说把页面嵌入到自己的应用里面,比如我可能在应用里面需要做一些图像处理操作,可以把命令嵌进去,直接把API调用。我看到美国有大学做了在线的WPS的处理服务,再处理的工作放在服务器端,让客户端使用浏览器去调用,实现类似云这样的操作过程。后端的处理过程其实也都是调用的命令去完成的前端的处理分析工作。
Grass的界面来看,其实提供了各种各样丰富的功能,包括卫星的影像,图像的分析。此外,如果大家用不同的操作系统版本,这是提供了一个Mac OS版本的移植,还有其他的像Quantum GIS等都提供了相同版本的移植。这是整个Grass功能的一个概况,能够实现的操作还是非常多的,只要是我们能拿到其中一块对自己有帮助的话,就可以拿过来去引用或者是借用。
下一个给大家推荐的就是Quantum GIS,前端是QT的用户,比Grass的优点就是,原来Grass是提供图形界面的,最早期都是使用页面行的方式去处理这些影像或者是数据,Quantum GIS提供一套非常漂亮的GOI的界面,简便了非专业人士去使用和操作的路径。随着发展,现在Quantum GIS首先移植到Windows平台,之后再到Grass这样其他的平台去操作。国外使用Quantum GIS平台很多,我们这是掌握的几个例子,首先看一下Quantum GIS提供是什么功能,数据库不仅可以放在本地,还可以存储到数据库,它使用了G-Mail库,实现栅格的操作,还可以实现WPS、WSS服务等等。此外还支持GPS的数据格式的转换等等。这是日本的一个应用,这是用在减灾防灾的应用,这是做野生动物一个轨迹的追踪,比如说在大象或者是斑马航拍的图像的时候,处理完之后,会放在Quantum GIS这个平台上去分析,显示有什么种类的野生动物,再去过滤一下,看看某一个种类迁徙的轨迹是怎么样的。相关的应用其实很多,因为Quantum GIS在国外是经常被拿来用作教学使用。国外地理信息专业的学生不会去用一些商业的软件,而导师可能每人会配发一套开源的软件使用。现在紧跟移动应用的潮流,也出来一套Android版本的GIS。为什么开发者要做这样一套Quantum GIS应用呢?对于开发者来说,有时候离文明实在太远了,所以在有些极端的情况下,会用移动版本的Quantum GIS去完成他们的一些工作。具体的这一套系统的源代码可以在这里面查到,在Quantum GIS一个在线的数据库里面。做的移植工作,就是用Qt和C++的方式移植到这个平台当中,最后实现出来的样子就是这样,在Android的4.0上面跑的Quantum GIS应用,可以把这个东西装到自己的iPad上面,装到Android平台上去实现。
这个是Java实现的叫uDig,不少Java的使用者会感觉这个很亲切,完全是借用了本地的原生操作系统的界面风格。实现的方式就是是集成了中间件,可以去加载一些本地的矢量栅格数据驱做分析和处理工作。此外,这套工具最大的一个特点就是它对OOGC服务支持得特别好,如果自己去架一些OGC的服务,去提供地图服务的话,可以拿这个东西来做测试,这个非常好。就是WFS、WPS、WMS都集成了这个制式,而且还可以有些拓展模块实现。
Puzzle GIS是完全拿Puzzle去写的应用,这个客户端应用很少,有这样一个实现,就说明,每一个社区的程序员都希望用自己熟悉的方式去实现自己的一套应用。MezoGIS的用户目前也不是特别多,主流的还是刚才介绍的C++或者是Java实现的开源的。这个类似于Google earth,现在也有很多平台在做这个事情。但是目前来说,OSGeo本身没有这样一套全面的应用。
刚才讲的是桌面的应用,下面来到地理信息的中间件。中间件给大家推荐的就是PostGIS,大家做Web应用的时候,后面必须有数据库,放在这个Center里面,使用的这个协议可以完全商用,可以集成在自己的产品里面,不受太多的授权的困扰。PostGIS在这个基础上提供开源的实现,它最新的版本现在是有4个版本,支持的操作包括像新增的就是一些空间分析的操作,可以集成在自己的查询里面去完成。比如说我不需要把数据落到客户端再去做这样的操作,而是直接在查询里面去加一个操作,取两个不同的数据集就可以得到最后空间分析之后的结果,会把这些分析的过程转交到中间件,就是数据库这个层面去开发这样的工作。此外,现在PostGIS正在开发2.0的版本,这个2.0的版本最大的特性就是,它对栅格支持比较好,原来栅格直接存到二字段里面去用,主要还是用一些矢量的方式放到数据库里面。现在对栅格还有3D的支持比较好,对3D和4D的索引都增加到数据库里。如果大家感兴趣的话,可以去试一下PostGIS2.0最新的版本。这是两张不同标准实现的SQL查询的图,一张是OGC主导的SQL Figture,目前来说,Post GIS使用的还是遵循在查询里面嵌入这些空间分析操作的函数。
这是刚才讲到的构建搜索的插件pgRouting,比如我们查A点到B点的自由路径查询的时候,就可以使用这个算法,还有启发式的算法,就是搜索的效率要更高一些,它会自动的从起点到终点,往这个方向上去纠正自己的方式。而,而且这个也是开源的,是免费的,原来最初是日本的一家公司,是法国一个开发者开发的。后来做得比较好,就自己跳出来成立了一个新的公司来做这个事情。
这是Openlayers,我们从中间件又到了前端,Openlayers大家比较熟悉了,如果对JavaScript API感兴趣的可以下载下来,有各种各样的控件,都可以在自己的前端的Web展现这一层上去添加。而且目前Openlayers还支持大家提到的WMS服务和WPS服务,也就是说直接在前端去添加这样的地理信息服务就可以展示出来,而且可以在上面去做空间分析的一些操作。这是Openlayers Free Maps,刚才提到了,肯定是不能下载的,而且也有一定的迁移。Free Maps肯定有各种各样的开发者拿着GPS去查询,会把POI的点和自己的路径都传到AP上面,久而久之就发展形成了一套全世界的矢量数据。现在欧洲和美洲覆盖得非常好,国内现在也逐渐在有自愿者往上上传。如果想用这些数据集成在自己的系统上,或者甚至是用这些数据做一个测试的话,可以把全球的地图下载下来,全球的地图在最左边是21G。刚才还有朋友问百度有没有国外的地图,现在台湾的地图也还没上线,这个是全球的地图,都有矢量的数据,可以直接下载。下载下来放到自己的应用里面,可以跑个原形,或者是给客户展示的时候拿出来用一下。
再往Web后端去看的话就到了地图服务器这一层。现在国外用的比较多的地图服务器就是两个,一个是GeoServer,第二个是Map Server,后面有C++的爱好者实现。没法说直比较这两个哪个更好,但是他们各自有不同的专长的地方。这个GeoServer我的机器上还安装了一套,可以直接下载应用跑起来,跑在8080的端口,进去以后大家就可以添加自己想发布的矢量数据、栅格数据,也可以直接把这些数据发布到前端或者是Web地图服务,把自己的数据从后端的服务器发布出来,而且可以直接去连接自己的数据库,把数据库贡献出来。
GeoNetwork是把图层各种需要的原数据,对于数据本身的描述,比如说数据的作者、时间、用途,及调用数据的接口地址,都注册在GeoNetwork上面,如果有很多的数据源发布进来,时间长了以后,如果这个数据是不断更新的话,可能对于这个项目的使用方就变得特别繁杂,无法管理。所以说拿这个GeoNetwork去做分类和检索还是很好的,可以实时在上面看到自己所发布的数据。MapFish是拿Pylons的Web开发框架,拿这个东西建立自己的地图网站,这是一个新兴的项目,用户还不是特别多。
我们来看一下这些地理信息,刚才介绍的从前端到中间件,再到后端都有哪些应用,我们接触到了其中一小部分,像中国海图的一些应用,直接把这些信息用到了开源的应用,比如说后端的mapServer服务器,还有前端的Ka-Map展现。这个是一个拓展的应用,做了一些拓展的空间分析的方法。这个是在Linux上做的Grass的一个实现。给Grass做的一次封装,把所有的数据处理都用这样的方式封装,来做的一个分析。这是做的OGC的Web处理服务,就是一个缓冲区分析的例子,这个还是一个矢量的点,在周围的一公里去形成这样的缓冲区的范围。调用的分析算法是放在后端的GeoServer服务器上,把前端的数据放到服务器上,再反馈回来,加入到前端去展现。这个就是使用前端,不用一套桌面工具了,直接就拿浏览器Openlayers去做。这个是做的一个例子,这是一个数据压缩的,把这个数据原来道路拐弯的很多,进行一次压缩,这是压缩之后的效果。其他的一些做大规模数据处理或和预算的可能也大量的使用到一些开源的项目,如果在遇到这些工程的时候,可以去考虑使用这些应用。
下面再给大家简单介绍一下开源的地理信息到底有哪些活动,大家可以进入进来去关注。FOSS4G年度的会议,这是一个Tag Cloud,就是这个会到底包含了哪些关键词,像空间、数据、开源、Web,涵盖了方方面面,包括现在最新的云计算,都出现在这个会议的一些应用当中。日程也是非常多,而且非常丰富。此外,在会上可能会发现一些很新的项目,可能解决的问题是你原来曾经想过,但是又没有去做的一些事情,可能有些就把这个项目放在会上来介绍。比如像Zoo,它的工作就是对WPS去做了一套封装,WPS就是Web处理服务,在网上去做,通过服务器端去做空间分析,然后给它做了一套封装,可以去后端调用不同的应用。比如刚才提到的Quantum GIS等等,前端可以用其他的应用。在中间做了一些转发的操作,让开发者熟悉WPS非常方便。它具体包含Kernel,Web的前端和桌面的前端,桌面的前端,这个项目后面有几个日本的人做的项目,在国外有一些,但是也是属于一个实验性的项目。关注高性能计算的,可能会使用过相应的实现的数据库,叫CouchDB,是面向文档的数据库,FOSS4G里面还有一个主题,讲了一下怎么样支持高技术、开发高性能的数据库去存储这个空间数据,这也是一些新的实验或者尝试。但是说不定哪个时间,这些尝试就可能跑在4 Square或者其他地方的一些应用。德国有些人他们做了52North,他去使用Java做了一套WPS的实现,直接把这个应用包放在自己的GeoServer里面,包括还有一些做地图切片的,会有一些小工具能用得到,这个就是做地图切片的应用。可能还有一些技术公司或者是IT公司去参会,进行一些交流,这是历届会议一些图片,这是会场的情况,类似于我们的开发者大会。可能以后我们的开发者大会也会更多的加入一些GIS的话题,甚至是拿一个具体的应用,比如说拿GeoServer作为一个教程,告诉大家怎么上手,怎么使用,怎么优化,怎么使用到我们的应用当中。这是2009年会议的一些照片,每次会议也是吸引400到500个国外的开发者参与进来。
刚才我介绍的内容比较多,大家如果觉得每个都下载一下使用的话比较麻烦,有一个好的方式是下载一个Live GIS DVD,是一个光盘,下载之后可以直接拿到这边来试一下。这个环境什么都配好了,各种环境都直接下载到DVD,刻一张盘去用。日本也有很多开源GIS的用户,因为他们那边好多公司把这个开源GIS的东西给客户提供解决方案使用,日本这块的发展还是很不错的。这是另外一个博客和新闻聚合的网站,是Planet,这是在中国本地的一些项目,包括各种讲座,包括一些兴趣小组,或者是一些交流或者是讨论。以及易智瑞赞助的也涉及大开源的一些内容,随着是针对GIS普及或者是非GIS专业用的,里面有很多专业的软件或者是工具提供支持。
这次跟大家分享的内容就是这些,一些常用的就是开源跟GIS相关的网址,以及我个人的联系方式,谢谢大家,欢迎大家提问或者以后经常联系,谢谢!
主持人:“谢谢高昂,下面是提问时间。”
问:“您刚才提到了Web有开源的也有商业的,是怎样去维护的。”
高昂:“我用得并不是特别多,我确实不是特别熟,只是一般性的关注,商业版本可能也是两个不同的授权,如果给社区用户去用的话需要授权,如果是自己的应用,给客户提供服务的话,是需要商业授权。如果仅仅是做一个演示,或者给客户临时使用的话,应该不是问题。”
(以上内容根据速记整理,未经本人审核)
{{item.content}}