ArcGis开发(二)—基于FlexAPI-Tile数据

来源:互联网 发布:win64编程 编辑:程序博客网 时间:2024/05/17 23:07

现实开发中,为了地图的高效及缓解gis服务器压力,在能满足需求的情况下,更优方案是试用 Tile 数据,而不是 动态生成地图。

可以看到google map 或者 baidu map 都是采用的 tile数据。

在他们api参数中的 z 即代表瓦片数据级别,请求时也可以看到返回的是 256*256的小图片拼接成的地图。


arcgis flex api中,在代码上的体现是:

<esri:Map><esri:ArcGISTiledMapServiceLayer url="http://www.vm.com:8399/itant/services/GISGWSW/MapServer" /></esri:Map>

这里使用 ArcGISTiledMapServiceLayer 取代了 ArcGISDynamicMapServiceLayer, 即请求的是 瓦片数据服务。


要使用 tile service,首先要在arcgis服务中创建缓存数据,即让arcgis生成好地图切片数据,并保存起来,待请求到来时直接取生成好的缓存图片,而不是临时生成。


tile使用方法:

打开arcgis Catalog—GIS服务器—server—右键点击地图服务—选择“服务属性”—选择“缓存”标签—如下图设置确定即可。



图中 比例按实际需求划分。 至此,即可以使用Tile图片服务了。


Tile方式的优点前面说过,可以极大降低服务器压力,大大提高服务器响应速度。

但也有缺点:

其一:分割后的地图会大大占用硬盘空间,占用大小与地图比例分级有直接关系。并且第一次生成tile图片需要花较长时间。

也就是说,地图分级越多,占用磁盘空间越大,生成时间越长(当然这里也可以设置用户请求时缓存)。

其二:地图缓存服务是提前按照一定比率生成的,所以在地图访问时,也只能展示这几个提前限定好的级别的地图。无法像动态地图一样无极缩放。


实例: