您的位置:首页 > 其它

ArcGIS API for Silverlight 学习笔记(2)

2010-06-22 21:55 766 查看
这里主要讲解展示不同的服务地图
先看一个实例:

  新建一个Silverlight项目,在MainPage.xaml文件中,引入 ESRI.ArcGIS.Client 命名空间和 ESRI.ArcGIS.Client 所在的程序集 ESRI.ArcGIS.Client,并指定
该命名空间的名字为 esri,当然你也可以用自己的别名,比如myGIS。
  接着写Map控件,并指定Map中的地图服务,一个简单的服务地图完成了,代码如下:

代码

<UserControl x:Class="LayerList.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esri="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client">
<Grid x:Name="LayoutRoot" >

<esri:Map>
<esri:ArcGISTiledMapServiceLayer Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_ShadedRelief_World_2D/MapServer"/>
<esri:ArcGISDynamicMapServiceLayer Url="http://serverapps.esri.com/ArcGIS/rest/services/California/MapServer" />
</esri:Map>

</UserControl>
  在 AcrGIS API for Silverlight(以下简称agsapi4sl)中,根据数据源、地图服务类型、是否缓冲等的不同,地图服务被分为不同的图层(前面已经讲过,这个图层不同于ArcMap里图层的概念),下图是agsapi4sl中提供的图层类型对象模型图。



下面对各图层类型进行简单介绍:

1,Layer 是所有图层类型的基类,是一个抽象类。

2,GraphicsLayer 是一个包含有大量可交互矢量图形的地图图层,这如同ADF中的 GraphicsLayer 的概念,GraphicsLayer 里面存放的是 Graphics 的集合,Graphics 中要设置该矢量图形的地图符号(Symbol)和几何类型(Geometry,几何类型必须同地图符号匹配。比如,一个 MarkerSymbol 类型的点符号,其对应的几何类型必须为 MapPoint 或者 MultiPoint,FillSymbol 类型的面符号,其对应的几何类型必须为 Polygon,LineSymbol类型的线符号,其对应的几何类型必须为 Polyline)

3,FeatureLayer 继承自 GraphicsLayer,这个类可以为我们展示丰富的要素图形,为用户提供完美的视觉感受。

4,DynamicLayer 继承自 Layer,是动态地图服务的基类,是一个抽象类。

5,DynamicMapServiceLayer 继承自 DynamicLayer,未经过缓存的动态地图服务的基类,是一个抽象类。可以继承这个类,使得 agsapi4sl 能访问诸如 ArcGISServer 9.3 的地图服务和 OGC 的 WMS 服务等未经过缓存的动态地图服务。

6,ArcGISDynamicMapServiceLayer 继承自 DynamicMapServiceLayer,针对 ArcGIS Server9.3 版本发布的动态地图服务,同理,如果要在客户端API中使其他动态地图服务,比如 OGC 的 WMS 服务,则也需要像这个图层一样,扩展上面的 DynamicMapServiceLayer 来实现。

7,ArcGISImageServiceLayer 继承自 DynamicMapServiceLayer,针对 ArcGIS Server 9.3 版本发布的 ImageService。

8,GPResultImageLayer 继承自 DynamicMapServiceLayer,针对 Geoprocessing 服务所产生的结果。可以请求服务器端的GP服务将结果动态生成一张图片,将此图片作为 GPResultImageLayer 图层直接添加到Map控件中。

9,ElementLayer 是Framework Element 组件层,通过这个类,我们可以将诸如 Button,TextBlock 甚至视频放在这个层中,进而添加到Map控件中。

10,TiledMapServiceLayer 是所有使用了缓存的地图服务的基类,是一个抽象类。可以通过继承这个类,使得 agsapi4sl 能访问诸如 ArcGIS Server 的地图服务,Google Map 的地图服务,Virtual Earth 的地图服务等使用了缓存的地图服务。

11,ArcGISTiledMapServiceLayer 继承自 TiledMapServiceLayer,支持由 ArcGISServer 9.3 版本发布的经过缓存的地图服务,同理,如果要在客户端API中使用其他使用了缓存的地图服务,比如 Google Map 的地图服务,Virtual Earth 的地图服务等,则也需要像这个图层一样,扩展上面的 DynamicMapServiceLayer 来实现。

12,Bing.TileLayer 继承自TileMapServiceLayer,支持由微软发布的经过缓存的 Bing Maps SOAP Services 地图服务。

  通过上面的讲解,希望能理解 agsapi4sl 中各种图层的类型继承关系及其用途,在了解了这些基础性的概念之后,接下来的工作就能顺利进行了,所谓磨刀不误砍柴工,这一章节的学习,必然会让你在以后的开发中事半功倍!

  本次讲解到这里,下次继续!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: