图层是空间数据的载体,如果你对ArcGIS Server稍有了解的话,就能明白API里不同类型的图层对应了服务器端发布的不同Service,可以分成两大类:静态图层和动态图层。
静态图层泛指缓存过的地图服务,除非服务端删除或更新缓存,否则客户端请求的数据永远是固定不变的,而动态图层正好相反,服务器根据每个请求动态的生成数据,一静一动各有用途。
表3-2-1 不同类型图层的继承关系
AGSLayer是所有图层的基类,声明了空间参考、最大范围、初始范围、单位和图层委托等基本属性,还有图层加载的相关方法。
表3-2-2图层类的属性和方法
1 静态图层
静态图层根据一定的规则提前生成缓存,这样客户端的请求就能直接调用缓存地图切片,显著提高了地图请求的响应速度。常常用于那些使用频率高、更新周期长的基础地理数据,包括大家常常用到的电子地图、地形图、卫星影像图等。
AGSTiledLayer继承自AGSLayer,同时也派生出不同类型的静态图层:
表3-2-3 静态图层的继承关系
在MVC结构中,AGSTiledLayer属于Model角色,对应的View角色是AGSTiledLayerView。其中实现了关键的异步获取切片数据操作,并获取到切片服务的缓存规则:
表3-2-4 静态图层的方法和属性
注意:如果静态服务图层的空间参考与MapView的不一致,就无法显示。
1.1 切片地图服务图层(AGSTiledMapServiceLayer)
切片地图服务图层是最常用的服务,ArcGIS在线提供了一系列,其切片规则(tiling Schema)里描述了切片的尺寸、格式、比例尺、级别等信息。
“虽然图层已经初始化并添加到地图中,但切片信息还是空值?”,建议先判断加载成功与否,尤其是在网速不好的情况下:
//图层加载完成后才能获取完整的属性
if(layer.loaded){
NSLog(@"TilingScheme: %@", layer.tileInfo);}
1.2 微软Bing服务图层(AGSBingMapLayer)
由于