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 的重要内容******重要的更多相关文章

  1. ArcGIS API for Silverlight代码中使用Template模板

    原文:ArcGIS API for Silverlight代码中使用Template模板 在项目开发中,会遇到点选中聚焦闪烁效果,但是因为在使用Symbol的时候,会设置一定的OffSetX和OffS ...

  2. ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件

    原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...

  3. ArcGIS API for Silverlight中加载Google地形图(瓦片图)

    原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...

  4. ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

    原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...

  5. ArcGIS API for Silverlight开发入门准备

    原文:ArcGIS API for Silverlight开发入门准备 微软的Silverlight提供了跨浏览器和跨平台开发环境,在Web中可用于创建和展现富互联网应用(RIA,Rich Inter ...

  6. ArcGIS API for Silverlight学习笔记

    ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...

  7. ArcGIS API for Silverlight开发入门

    你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...

  8. ArcGIS API For Silverlight使用在线地图的多种方法总结

    引自:http://www.cnblogs.com/meimao5211/p/3283969.html ArcGIS API For Silverlight使用在线地图的多种方法总结 本人也正在学习A ...

  9. ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)

    最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...

随机推荐

  1. animation效果

    添加一个颜色灰渐变的动画效果. <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  2. MyBatis学习笔记(四)——解决字段名与实体类属性名不相同的冲突

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4264425.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演 ...

  3. Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(二)——Struts2集成

    1. pom.xml文件添struts2依赖jar包: <!-- 与Struts2集成必须使用 --> <dependency> <groupId>org.spri ...

  4. Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC

    Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC 这两个宏在Qt的源码中随处可见,重要性不言而喻.在 部落格的 Inside Qt Series 系列文章中,他用了3篇文章来讲这个 ...

  5. 使用token实现在有效期内APP自动登录功能

    实现此功能的场景是在当下用户对手机APP体验要求高,并且相对安全前提的推动下诞生:当你下载了一个QQ,微信第一次进行了账号和密码的登录,你从此以后打开应用免去了你每日打开应用都要输入账号跟密码的痛苦过 ...

  6. 20145127《java程序设计》第三次实验

    实验三 敏捷开发与XP实践 一.实验内容及其步骤 1.配置开源中国公钥 2.找到ssh公钥 3.在开源中国添加公钥 4.下载同组同学项目 5.推送代码到开源中国 6.推送代码成功 二.实验感想总结: ...

  7. 20145220韩旭飞《网络对抗》实验九:web安全基础实践

    基础问答 (1)SQL注入攻击原理,如何防御 原理:把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串. 防御: 利用输入规则限制进行防御,不允许特殊字符输入 (2)XSS攻击的原理,如 ...

  8. 20145331魏澍琛《网络对抗》逆向及Bof基础

    20145331魏澍琛<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...

  9. P4303 [AHOI2006]基因匹配 未完成

    题目 luogu 暴力60pts部分 显然如果没有出现次数==5的条件 显然是\(N_{2}\)的求lcs的模板 但是加点条件就完全不同了 思路 这个题短小精悍,不想数据结构那么傻逼无脑 我们考虑一下 ...

  10. 【分词器及自定义】Elasticsearch中文分词器及自定义分词器

    中文分词器 在lunix下执行下列命令,可以看到本来应该按照中文”北京大学”来查询结果es将其分拆为”北”,”京”,”大”,”学”四个汉字,这显然不符合我的预期.这是因为Es默认的是英文分词器我需要为 ...