FW: WebGIS设计与实现原理 - ATL S…

FW: WebGIS设计与实现原理 - ATL Server开发系列

WebGIS设计与实现原理
cheungmine
什么是WebGIS
    我的定义是:在internet领域内,向WWW服务器请求地图数据或与之相关的操作,从而获得地图并呈现给最终用户的过程。几点共识是:客户端不必安装任何插件(当然必要的浏览器和XML支持是少不了的);服务端动态生成地图(强调这一点,是因为这样的Webgis引擎才符合工业标准。否则只能称为带有地图图片的网站)。符合上述定义的Webgis的优点是显而易见的:
(1)地图由服务器动态按需生成,发送给客户端只是最终生成的图片(我的经验是png格式为好),对客户端的要求降到最低。
(2)利用服务器的中心控制、监视和审计,保障了数据的安全和实现的一致性。
(3)方便部署的特征,使升级和扩展都异常简单。
因此,我希望以后在谈论Webgis的时候,再也不要听到Plugin、ActiveX、Applet之类的字眼。
 
2 Webgis 技术原理
    说了一大堆,就要谈到核心实现了。别以为我在这里胡吹海侃,我确实是真的把自己的体会和经验(教训)无偿的奉献给莘莘学子。我的体会是:
(1)一种技术,如果太过复杂,就称不上是好技术。比如质能方程E=MC *C其简单和优美。所以,我以为宇宙的定律就是简单的规则,当然,多数我们还没发现。
(2)一种实现,如果要写一大堆的代码,仍然不是一种好的实现。就比如夸一个人长的美,说一千道一万,不如就2个字:好看。
秉承这个原则,下面介绍我的技术:
(1)客户端(IE)采用AJAX,直接调用服务端的Services。
(2)服务端编写Web Services,响应客户的请求。
原理就这些,为什么我就不说了,如果你不知道,说明你还需要学啊学啊学。
 
3 Webgis 实现
    先说服务端的实现。按上面说的,就是写 Web Services(Web服务)。可能目前没有比写Web Services更时髦的了。还有人说Google Web API要代替传统的Win32API。其实这完全是2种计算模式,谁也代替不了谁。许多专家就喜欢炒作,把媒体那一套应用到我们这个技术领域,误导消费者。
    其实,若不是浏览器大行其道, Webgis算个啥啊。这社会从来就没公平过,好好的C/S不用,非强迫我们在浏览器里搞啊搞的。没办法,就搞吧,看谁搞得过谁?
    Web Services有很多语言可写,什么C#、Java、C++等等等等。需要一套称之为Webgis API的东西。设计这样一套API让AJAX调用。怎么设计呢,我会把我的接口公布出来,供大家参考漫骂。
    其实最重要的是服务端的地图生成引擎(引擎就是发动机)。我自己实现了一个(带 VVT-i的啊),没有的要自己实现,或者买个现成的(比如MapObjects)。
    该说客户端了。 AJAX吗,其实就是Javascrīpt + XMLHttpRequest(微软版本)对象啊。就别用什么Webservices.htc了,虽然是微软写的,还真他妈不好用。我从高人那里抄了一个,改了改,就用上了。看我上篇文章啊,那个是100%的源代码,没错误的啊。
    剩下的再说就显得多余了。画个体系结构图吧:
  (图象怎么显示不出来??) 
小贴示
    看到这里你是不是觉得恶心了,提示就提示干嘛贴示啊。不是有国内北大高人翻译《 ATL 技术内幕》非满纸的“控制”。我看了就别扭,国内叫“控件”,这个还比较舒服。翻译的就别提多牵强了。
1)服务端要以多线程(IIS进程)服务请求。
2)地图引擎加载数据,要能够静态和动态2种模式载入。
3)绝对不要想着传矢量的数据,传图片最好,哪怕未来网络带宽提高100倍。
4)写的要绝对健壮,不然把IIS搞瘫了。
5)记得在服务端保持客户状态啊。
 
附录:Webgis WebServices 接口和方法
也许一不小心成了标准呢?其实就是想让读者在做这方面的设计时,有个参考,反面典型也好。我把修改数据方面的 API去掉了,太危险了,还是不说出来的好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值