• ArcGIS API for Silverlight 的重要内容******重要


    ArcGIS Silverlight API:是构建在微软Silverlight平台之上,通过ArcGIS Server Rest API消费ArcGIS

    Server 服务,同时支持直接消费Bing地图服务的应用程序编程接口。

    ArcGIS Server服务:

       1、MapService             --地图展示、要素查询

       2、GeometryService        - -实现基于Geometry的功能模块

       3、Geoprocessing Service  --在Web端消费GP工具

       4、GeoCodeService         --实现地理编码和解码

    Bing服务:

       1、Map Services           --访问Bing在线缓存地图数据

       2、GeoCode Service        --提供世界范围的地理编码服务

       3、Routin Service         --驾驶/导航路线服务

    学习Silverlight官网:

    1、http://silverlight.net/

    2、http://www.codeplex.com/Silverlght

    3、http://msdn.microsoft.com/zh-cn/library/cc838158(VS.95).aspx

    API Library概述:

    ESRI.ArcGIS.Client.dll                     核心类库,包括Map、Layer、Graphics、Geometry、Symbol、Task

    ESRI.ArcGIS.Client.Behaviors.dll           包含一套行为和动作,用来与Map及其内容交互

    ESRI.ArcGIS.Client.Bing.dll                专门针对Bing(Virtual Earth)服务的类库,支持添加Bing的MapService、GeoCode Service和Routin Services。

    ESRI.ArcGIS.Client.ToolKit.dll             包含Bookmark、Magnifier、MapTip、Toolbar、Navigation、OverviewMap等控件。

    Silverlight API开发---------Map&Layer

    支持的图层类型:

    ArcGISDynamicMapServiceLayer

    ArcGISTiledMapServiceLayer

    ArcGISImageServiceLayer

    GraphicsLayer

    FeatureLayer --指定类型的GraphicsLayer

                   url   --必须指定MapService图层的地址

                  where --定义的查询条件

                  FeatureSymbol --用于所有的Graphics

                  Clusterer --要素点按簇显示

                  OutFields --指定返回的字段

    TileLayer   --Bing Layer

    ElementLayer --Silverlight UI/Media

    图层拓扑关系图:

                                  Layer

    DynamicLayer       ElementLayer        TiledMapServiceLayer          GraphicLayer

    DynamicMapServiceLayer                                         FeatureLayer

      

          GPResultImageLayer                   Bing.TileLayer

          ArcGISImageServiceLayer               ArcGISTiledMapServiceLayer

          ArcGISDynamicMapServiceLayer

    注意事项:

    1、  地图显示的顺序依照加载的先后顺序

    2、  Map初始化空间参考和比例尺级别

    3、  ArcGISDynamicMapServiceLayer的背景色总是透明

    4、  Multi-Layer Cache不支持

    5、  地图服务安全策略

    6、  SnapToLevels属性

    7、  控制地图动画时间->ZoomDuration(1.5)&PanDuration(0.75)

    API支持的Task类(ESRI.ArcGIS.Client.Tasks)

    QueryTask      --针对单个图层

    IdentifyTask     --与位置相交的要素

    FindTask        --指定要素的模糊查询

    Locator         --获取地址的地理坐标(GeoCode)

    Address         --获取地理坐标的地址(Reverse GeoCode)

    GeometryService --执行Geometry操作

    GeoProcessor    --做复杂的GIS分析

    GeometryService

    功能                                       描述

    面积和周长工具                             计算输入的polygons的面积和周长

    AreasAndLengths

    测距                                       计算输入polylines的长度

    Lengths

    缓冲区工具

    Buffer                                      计算缓冲距离,计算输入点的缓冲区

    计算标注点                                 计算输入polygons的标注点

    LabelPoints

    简化                                       对输入的geometries进行拓扑校正

    Simplify

    投影                                       对输入的geometries进行投影转换

    Project

    空间关系                                   计算geometries之间的空间关系

    Relation

    使用Task三步走原则:

    1、  实例化Task对象,注册Task完成、失败的监听事件。

    QueryTaskqueryTask;

    queryTask= new QueryTask(“http://localhost/ArcGIS/rest/services/USA/MapServer/5”);

    queryTask.ExecuteCompleted+=QueryTask_ExecuteCompleted;

    queryTask.Failed+=QueryTask_Failed;

    2、  实例化Task参数对象,为必要的属性赋值,发送请求。

    Queryquery = new Query();

    query.ReturnGeometry= true;

    query.OutFields.AddRange(newstring[] {“STATE_NAME”});

    query.Where= QueryTextBox.Text;

    queryTask.ExecuteAsync(query);

    3、  在Completed事件中处理返回结果/处理失败的结果。

    privatevoid QueryTask_ExecuteCompleted(object sender,QueryEventArgs args)

    {

    GraphicsLayer graphicsLayer = myMap.Layers[“MyGLayer”]as GraphicsLayer;

    graphicsLayer.ClearGraphics();

       }

       private voidQueryTask_Failed(object sender,TaskFailedEventArgs args)

       {

          MessageBox.Show(“Query Failed:”+args.Error);

    }

    GPService

       执行GP服务的2套成员

    同步GP服务 -----短处理事件ExecuteAsync

         只要执行一完成,就返回每个操作的结果给客户端,在服务器端不存储结果。

    异步GP服务 ---长处理时间 SubmitJobAsync

         存储结果在服务器上,返回一个job ID给客户端,客户端然后使用这个ID返回结果。

    Behavior->被设计为操作基于map的预定义事件,并且生成结果

     --ConstrainExtentBehavior

    --MaintainExtentBehavior

    --ShowCoordinatesBehavior

    Action->被设计为操作map及其内容,并生成结果

      --PanToAction

      --ZoomToAction

     --ZoomToFullExtentAction

      --MeasureAction

    需要添加System.Windows.Interactivity.dll引用。

    Silverlight API开发---ToolKit工具栏

    Bookmarks       书签

    FeatureDataGrid   要素表格

    Magnifier         放大镜

    MagnifyingGlass   放大镜 

    MapProgressBar   地图进度条

    MapTips         地图提示

    Navigation        导航工具

    OverviewMap     鹰眼

    客户化控件外观

    目的:

    改变现实样式、改变状态、改变与用户交互方式,但不改变功能。

    实现思路:

    1、             分析控件结构和控件状态

    2、             在资源字典中根据控件协议自定义新的控件模板

    3、             在xaml中为控件的Template属性赋值

    Silverlight API实现专题图绘制:

    目的:

    在地图上展现专题业务信息,为用户实现控件维分析

    实现思路:

    1、 专题要素需要在GraphicLayer中显示,构建GraphicLayer

    2、 自定义专题要素符号,并绑定专题要素属性

    3、 queryTask返回查询要素

    4、 在GraphicLayer中添加Graphic,完成专题图绘制

    Silverlight API可扩展性–--自定义图层

     目的:

         在地图控件中加载Silverlight API未原生支持的图层。

    实现思路:

    1、          了解自定义图层的访问原理(访问协议)

    2、          根据服务特点选择继承对象

    3、          初始化资源(重载Initiallize方法)

    4、          构造请求服务的URL

    经典案例:

        SilverlightShowCase官网上有案例源码,一定要学习一下。

     
  • 相关阅读:
    索引的实现:B+树
    SQL Server 查
    SQL Server 增、删、改、小部分查
    最最最最最基础的SQL Server
    三大范式
    SQLserver数据类型
    第一阶段项目
    2017.10.17一阶段项目心得
    jquery&bootstrap
    国庆小长假结束后的一阶段小测验
  • 原文地址:https://www.cnblogs.com/changbaishan/p/3319205.html
Copyright © 2020-2023  润新知