2005年10月13日星期四

尝试Ajax WebGIS 之三

这两天大致读了ka-Map的代码。

ka-Map推出的示例应用效果可与Google Maps相媲美。虽然Google Maps为普通用户提供了API接口,但其实现细节和地图数据却是封闭的,而ka-Map及其依赖的服务端技术都是完全开放的。ka-Map应用了 Ajax,使用JavaScript脚本操作DHTML元素实现客户端复杂的交互操作,使用XMLHttpRequest异步调用服务端的PHP脚本,服 务端采用MapServer的PHP/MapScript模块,使得PHP脚本能够调用MapServer的C语言API接口。
ka-Map的代码结构图如下:

index.html 文件中包括由DHTML元素组成的地图界面,以div层为主要结构,分幅地图是一组img;还包括大量的JavaScript脚本负 责操作这些DHTML元素,以控制与用户的交互行为。脚本通过设置分幅地图img的src以实现地图的显示,通过改变div的位置实现地图的移动,通过鼠 标与键盘动作处理函数相应用户操作,通过调用xhr.js提供的call()函数和自定义的回调函数从服务端获取数据并处理。
xhr.js脚本文件实现了创建XHttpRequest连接,以及使用XHttpRequest连接与服务器交流的函数。
init.php当页面初次加载时被客户端调用,负责生成一些关键参数传递给客户端(以JavaScript脚本格式传递)。
tile.php负责返回客户端要求的分幅地图,并实现缓存功能。

下面该考虑自己的Ajax实现了。

没有评论: