这些天都在忙着找工作应聘,所以更新比较慢~不过我还是会继续把我那个项目做完的,不管怎么样。

昨天去招聘会应聘时发现一家GIS地理信息系统的公司,这让我突然想起了我的一位网友,他也是专门研究这个的,所以有兴趣跟那位招聘的先生聊了几句,他好象对FLASH知道很少,我跟他提起说见过用FLASH做客户端GIS系统演示时,他显得有些惊讶,“FLASH能做这个?!”,也许象大多数人一样,网页上红红绿绿的广告,一个个的MTV才是FLASH应该做的事情吧。

我现在把知道的一些例子列一下:

一。介绍

Robin Hilliard在去年的MXDU曾展示过一个用Flash和ColdFusion做的GIS的演示程序,关于这个演示的内容可以从这里观看

二。应用实例

(1)上海市长宁区GIS系统 Flash(March 25, 2004 09:21 PM By:woody)

图片效果:



作者自述:
不知道这样简单的信息形式能不能算作地理信息系统。这是上海长宁区规划局网站的一个栏目,计划的周期非常短,只有4天。而最后实际投入的时间,可能一共只有不到20个小时。在功能上,因为没有制作的经验,无级缩放和拖动是难点,其它的都很简单。因为功能非常简单,因而很想在动态效果上加入更多的元素,但是时间时间…………


(2)2004 Federal Election. Interactive Election Map.

演示地址:http://www.abc.net.au/elections/federal/2004/electionmaps/

在前天的澳大利亚大选中,这个基于Flash的GIS应用很好地反映了各个选区的实时投票情况。以前虽然也看过一些Flash地GIS系统,不过大多数处理的是小规模的数据集(例如城市或社区),而这个应用令我感到惊奇的是,Flash在处理如此大型的全国地图数据时居然表现还能如此出色。

如果你访问这个GIS应用,你可以放大地图,并通过不同的overlay来观看不同的数据表现情况,你还可以点入小的区域观看详细到交通道路的情况,总体效果非常不错。

(3)Event Map
演示地址:http://www.mapbureau.com/directionsmag/index.html
(没仔细研究过~~)

(4)一个网友的
演示地址:http://211.91.224.148/hnsfz.swf

(5)Davis Streetmap - Flash/ArcIMS GIS map
演示地址:http://www.ci.davis.ca.us/gis/streetmap/

(6)Fairchild AFB Information System
演示地址:http://www.mwmadison.com/Wiscraft/gis/

记得上次flashanywhere举办的RIA比赛里也有一个是类似的项目,不过忘了地址了。应该还有许多,慢慢收集。

下面是一些网友关于Flash做为WebGIS的客户端的评论:

· 为何不使用Flash做为WebGIS的客户端呢?
bruce | 四月 02,2004 15:58

GIS应用广泛,尤其是在行业软件中,电力、水利、电信、规划、消防、交通……

每个城市的数字化工作已经基本差不多,基础打得很好了,通过叠加专业图层,应用到各个领域已经不是什么难事。

国外的Mapinfo,国内扶植的MapGIS,SuperMap,通过共享标准地图数据格式,应用已经相当普及。各个GIS平台的开发接口优良,应用广。

同时也衍生了很多行业,绘制地图,标注地图,矢量化工作等,都有相应的公司。

随着Web的易用性普及,WebGIS也成为各大平台厂商的焦点,纷纷推出自己的web server中间件。有java的.net的,好是热闹。

象Go2Map.com这种通过二次开发,做出的webGIS二次平台也是相当好的应用。

目前WebGIS的表现形式,无非2种,大家可能也都接触过,

一种是基于DHTML的,通过DHTML在图片上进行选择,点击,通过cgi传给服务器,服务器根据用户控制,传回相应的地图gif或jpg图片,用我不专业的眼光评价,他的表现形式慢,跟网络传输有关,经常是一个waiting的动画在那闪,对于服务器,他的性能要求极其重要,把所有图形运算全部集中在一个server上,自然就需要什么集群的支持。

二是,采用客户端下载方式,常见的是java aplet或MS的ActiveX控件,采用嵌入的方式,仍然使用胖客户端的方式,本地运算矢量数据,分担服务器消耗。这种方式和传统的CS方式没什么区别,web交互不方便,尤其是MS制裁java后,IE中运行java新特性,还非得装专门的虚拟机,而且效果也不好,资源占用厉害,swing简直是垃圾。

这几天突然想一个问题。

现在FLASH这么疯狂,Macromedia/Microsoft都这么推这个标准的activeX控件,用做矢量显示。又有各种成熟的action脚本,编程方便,网页制作者不得不学的一门手艺。依我的见识,flash可以进行socket编程(甚至有专门的flash写的jabber客户端)也可以动态加载数据。

那么为什么不把FLASH技术应用在WebGIS的客户端显示上呢?既可以用矢量表示替代静态图片,又可以增加交互,还是个矢量处理专家。

我相信,一定会有这方面的客户端出现。

google: Flash GIS,国内没有发现。

国外倒是有不少。例如:http://www.mapbureau.com/directionsmag/index.html

我相信,那些平台提供商,在处理好服务器端均衡负载的同时,加强flash技术的应用,一定会让GIS领域更加绚丽多彩


下面一段未经考证,看看就算~

局外人看GIS
bruce | 六月 16,2004 16:47

同学想看校园现景,今天有点冲动想搞个flash的学校地图,再把风景链接上去。

于是乎想到了GIS,想把我们开发中的地图抠出学校的部分导到flash中跑


我是喜欢冲动的人,研究了一天,发现难度稍大,涉及图形学、关系数据库、图论、地理学等知识。

虽然项目组有专门搞地图的人,但都辞职了,丢下一堆地图在哪里。于是,我操起家伙自己就用上了。

正版的Supermap不会用,也许是太难用了,也许是加密狗不管用。反正折腾了一上午硬是没装上。下午随便下了个mapinfo7.5装上,一个licence就解决了问题。

没想到拥有高端引擎的MAPINFO专业版界面就如此简单,一些低级功能被我玩了一下午。还蛮好玩

因为小组做了这么久行业GIS应用,我也有少量图形学、RDB、图论(其实都是离散的相关知识)的基础,加上用软件经验丰富,很容易上手了。

这里简单讲述一下GIS的相关技术,只能算局外人,用最粗俗的话,让没接触过GIS开发的兄弟花最短时间了解它。


1:交互

有话说一个图形描述抵过10句文字描述,这也是GIS的最大用途吧,把信息最直观的展现给人们。

GIS的交互以图形学为基础,图形有别图像,是矢量数据,当然就可以无极放大。他的基本元素就3:点、线、面、(三围体就不讲了)

所有图形对象都由他们组成:

点有坐标,线有长度、起点终点、弧度,面有面积、周长等。相信几何都学过吧

除了这些基本属性,GIS中对这些对象都允许扩展,如名字、laber、颜色、填充等等。说白了就是扩充那么几个基础类。

除了点线面,GIS中还有个层的概念。

把各种不同的数据分层堆叠显示,一来让一层数据结构单一,便于检索存储,二来可以方便的定制可视性。

行业应用GIS的特点就是在现有基础图层上叠加应用图层,比方电信局的机柜分布图层啊,重点单位图层什么的,做应用的就是在这个上面做文章。二次开发就是做这些图层的数据输入输出查询。简单吧。

层之间叠加完全靠坐标系来校准,最简单的是经纬坐标,可能还有别的,偶还不会

上层可以挡住下层,这是很好理解的,所以那些地点的点图层应该放在面图层上才不至于被挡住。

属性:地图好不好看,其实就看图层显示的时候上面线条形状、色块颜色、字体大小、标记样式等来决定,配得好就很好看,配得差就很恶心,我上面那个地图够恶心吧,其实还是我改过字体的,要不改估计有人会骂我。

其实GIS的关键并不是好看于否,而是看地图数据是否及时、准确、完整。有了数据的保证,怎么玩都可以。

2、数据

GIS中数据的地位也很重要,测绘局卖地图不知道赚了多少钱,一个城市基础图卖几百万。怕怕。

地图也是随着时间变化的,维护地图数据也是很繁杂的事情。

这些数据是无数测绘工作者多年来的积累。数字化中国项目现在进展得很不错了,各大城市都有数字地图数据,伟大啊。

数据怎么录入?

不至于一条线一条线的画,一般是测绘者拿设备在玻璃纸(不专业的叫法)上画好,然后再矢量化,基础图线面出来后,再在上面标地点注释。

还有就是航拍,是新的测绘技术吧,用飞机或卫星拍摄,再在拼接的影像图上进行描绘。工作量也不小。

米国拍摄伊拉克首都的航拍图是多么的清晰,大家应该都见过。

工作者的工作就是做矢量化,叫什么栅格处理的技术吧,(这是细节)。

其实得到数据最简单的方法就是买张打印好的地图,给丫扫描进来。然后再矢量化。我看好些地图公司都这么处理。

这些枯燥的工作怪累的,也是必需有人做的,难怪那么多数据整理公司跨不了。

数据格式:

通用数据格式是GIS的一个特点,一些老牌产品,如AutoCAD,Mapinfo什么的,互相之间都有业内的标准,如DXF,MIF什么的,基于文本描述或者数据格式公开。我想这里最合适用的是XML了吧。

各种软件靠此可以相互导入导出数据,凭这些公开格式,国产GIS系统才能和其他国外软件兼容。

GIS数据其实是基于关系理论。说白了,靠关系数据库来存储、运算。每个图层中的对象,有自己的表结构。

难怪我们公司搞DBMS的也研究空间数据库。

数据存储有异构的类型,有文件方式的,GIS平台自己控制的,也有RDB方式的,使用jdbc/odbc连接,oracle,msql有不少专用版本,估计是对检索做了优化。

3、运算处理

除了ui和data,我想更核心的东西应该是他的计算处理功能了吧

基于图论的运算,计算距离,面积,最短路径,关键路径。谁最快最准,谁就最牛。mapinfo处理300多M的数据速度真是太快了。

图论很复杂,要做出有实际价值的东西,数据的完整准确性很重要:

比方要算最优路径,不仅要考虑距离,还要考虑路的宽度,道路拥塞情况。这样必须要用准确的数据构造出路中线图层,而且无向中线是不够的,必须能构造出带权的有向图,乖乖,难度够大。
这一块也是我们实际应用中难度最大的部分。虽然有最优算法,但意义不大,因为根本无法构造出全市主干道带权有向图,权的标准也没有,根本谈不上实际应用。
其实,任何技术都是基于科学,越往高层开发,对科学的要求越低,所以GIS的技术核心被那几家做GIS平台的公司掌握,我们做应用的只需要使用就够了。用一用还是挺简单的,呵呵。