开发者社区> 暖枫无敌> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ArcGIS API for Silverlight 学习笔记

简介: ArcGIS Silverlight API:是构建在微软Silverlight平台之上,通过ArcGIS Server Rest API消费ArcGIS Server 服务,同时支持直接消费Bing地图服务的应用程序编程接口。
+关注继续查看

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官网上有案例源码,一定要学习一下。

 

 

 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ArcGIS API for Silverlight 加载google地图
原文:ArcGIS API for Silverlight 加载google地图   using System; using System.Net; using System.Windows; using System.
972 0
ArcGIS API for Silverlight动态标绘的实现
原文:ArcGIS API for Silverlight动态标绘的实现 1、下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地址为:http://download.
1008 0
ArcGIS API for Silverlight动态标绘的实现
1、下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.
654 0
ArcGIS API for Silverlight实现地图测距功能
问题:如何实现地图测距功能? 地图工具栏 ...
694 0
ArcGIS API for Silverlight 加载google地图
  using System; using System.Net; using System.
713 0
ArcGIS API for Silverlight中专题地图的实现浅析
原文 http://www.gisall.com/html/32/7232-2418.html 专题地图是突出表现特定主题或者属性的地图。常见专题地图类型有唯一值渲染,分类渲染,柱状图,饼状图,点密度图等。
971 0
ArcGIS API for Silverlight 查找点聚焦的一个注意点
主要的坐标系有2种: WKID=102100 WKID=4326 而且对于点来说,一个Geometry对象其Width和Height是0,这点需要特别注意。
729 0
ArcGIS API for Silverlight 查询点闪烁显示
主要样式如下代码段内所示: .... ... xmlns:esri="http://schemas.
617 0
silverlight:wcf双工通讯学习笔记
一直觉得SL中的wcf双工通讯方式有点鸡肋,如果是以http方式实现则效率太低,如果用SL4中的tcp方式实现,又跟socket太雷同,所以一直没去研究,不过这东西在对性能要求不高时(比如在网页上每5分钟更新一次天气预报/股票信息),实现起来还是蛮方便的.wcf双工通讯与传统的wcf相比,最大的区别就是:传统的wcf通常都是客户端去调服务,即客户端从服务端上“拉”信息,而双工通讯除了允许客户端从服务端"拉"信息外,服务端还能主动向客户端“推”送信息。
950 0
+关注
625
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载