使用ArcGIS API forJavaScript中的图层类,可以引用宿主在ArcGIS Server和其他地图 服务器中的地图菔务。所有的图层类继承自Layer这个基类。由于Layer类没有构造函 数,所以你不可以专门针对这个类来创建一个对象。你可以简单地通过继承自Layer的子类来定义属性、方法和事件。
如图所示,DynamicMapServiceLayer、TiledMapServiceLayer 和 GraphicsLayer 全部继承自 Layer 类。 DynamicMapServiceLayer 和 TiledMapServiceLayer也可以作为基类。DynamicMapServiceLayer是动态地图服务的基类,TiledMapServiceLayer是切片地图服务的基类。GraphicsLayer是图形类。Layer、DynamicMapServiceLayer 和 TiledMapServiceLayer都是基类,所以在应用程序中不可以从这些类中指定创建一个对象。
切片地图服务图层
如前面部分提到的那样,切片地图服务图层引用预先定好的图片缓存切片拼接在一起显示一幅无缝的地图,它通常用作底图。
如图所示,ArcGISTiledMapServiceLayer 类使用在当引用ArcGIS Server 暴露的切片(缓存)地图服务时。这种类型的对象使用已经缓存过的切片地图集合,所以性能得以改善。ArcGISTiledMapServiceLayer构造函数接收URL指针指向地图服务,以及一些允许为地图服务指定ID和控制其透明度与可见性的选项。
如下列示例代码,注意ArcGISTiledMapServiceLayer构造函数接收一个引用地图服务的参数。当一个图层的实例创建后,调用接收一个包含引用切片地图服务图层的变量到Map.addLayer()方法中并添加到地图上。
var basemap = new ArcGISTiledMapServiceLayer(http://server.arcgisonline. com/ArcGIS/rest/services/World一Topo _Map/MapServer">;
map.addLayer(basemap);
ArcGISTiledMapServiceLayer主要用来快速显示缓存的地图数据。你还可以控制显示数据的层级。比如,你想展示广义的ArcGISTiledMapService的数据,当用户放大到0〜6级别时显示州际公路和高速公路,一旦用户进一步放大就切换到更详细的 ArcGISTiledMapService。你还可以控制添加到地图上的每个图层的透明度。