地理信息系统对地表信息建立数学模型,利用计算机技术对数据进行存储,处理,分析。 其中采用Web技术的地理信息系统即WebGIS。在服务器端通过Web应用程序连接Web Server和GIS数据源,客户端仅须使用浏览器就可以对空间数据进行查询分析。美国的明尼苏达大学(University of Minnesota),提供的WebGIS解决方案:MapServer,就是利用CGI技术。
概述:Zoom by zoomfactor to imgpoint in pixel units within the image of height and width dimensions and georeferenced extent. Zooming can be constrained to a maximum maxextent. Returns MS_SUCCESS or MS_FAILURE.
参数详解:
int zoomfactor:指缩放的倍数,正值为缩小,负值为放大。
pointObj imgpoint:指像素位置,新的extent将以该点为中心
int width:指所传入extent的像素宽度
int height:指所传入extent的像素高度
rectObj extent:传入的extent,缩放的工作以该extent为标准
rectObj maxextent:缩放后的最大extent,可以不传入
关键字:用户观察区域
我们应该了解:对地图的缩放并不改变地图本身,只是改变用户观察地图的区域大小即改 变用户所观察地图区域的extent,在调用map.Draw后,当前用户所观察的区域将被画到一张 图片上,而这张图片的大小由map文件中的相关参数决定,也可以通过调用map.setSize来更改输出图片的width和height。调用任何zoom方法后,用户观察区域extent的width 和height的比例与输出图片的width和height的比例相同,以确保这个extent可以完整的被输出到图片中。
zoomPoint函数根据传入的参数,对用户观察区域进行缩放。zoomPoint总是根据传入的参数计算出一个点,再以这个点为extent矩形的中心,得到新的用户观察区域。新的用户观察区域是根据输出图片的大小,scale(比例尺)以及resolution(分辨率)计算出来的。
新的观察区域的width = 输出图片的width / resolution × scale ;
新的观察区域的height= 输出图片的height/ resolution × scale ;
其中观察区域的单位为map文件中设定的单位,可能为米,千米等,输出图片的单位为像素
通过这个公式也可以看出用户观察区域extent的width 和height的比例与输出图片的width和height的比例相同,以确保这个extent可以完整的被输出到图片中。
新的用户观察区域的中心点是这样计算的:
首先根据传入的extent的确定地图上的相应区域,再根据传入的width和height将extent的长和宽等分。例如,传入的width和height分别为400和300,那么就将extent的长和宽分别等分为400份和300份。根据等分的结果建立坐标系,坐标系的原点在传入extent区域的左上角,x轴坐标向右增大,y轴向下增大。
再根据传入的imgpoint最终确定中心点,imgpoint指定了点的x坐标和y坐标。
如下图所示