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官网上有案例源码,一定要学习一下。
ArcGIS API for Silverlight 的重要内容******重要的更多相关文章
- ArcGIS API for Silverlight代码中使用Template模板
原文:ArcGIS API for Silverlight代码中使用Template模板 在项目开发中,会遇到点选中聚焦闪烁效果,但是因为在使用Symbol的时候,会设置一定的OffSetX和OffS ...
- ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件
原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...
- ArcGIS API for Silverlight中加载Google地形图(瓦片图)
原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...
- ArcGIS API for Silverlight开发入门准备
原文:ArcGIS API for Silverlight开发入门准备 微软的Silverlight提供了跨浏览器和跨平台开发环境,在Web中可用于创建和展现富互联网应用(RIA,Rich Inter ...
- ArcGIS API for Silverlight学习笔记
ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...
- ArcGIS API for Silverlight开发入门
你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击 ...
- ArcGIS API For Silverlight使用在线地图的多种方法总结
引自:http://www.cnblogs.com/meimao5211/p/3283969.html ArcGIS API For Silverlight使用在线地图的多种方法总结 本人也正在学习A ...
- ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...
随机推荐
- fafu 1413
叉积的运用 ,不断的用叉积去判断 最小的拼图, 刚开始对点进行排序,每个人的排序规则不同做法可能不同,我是按照点的x轴进行x轴相同用y小的在前面,然后每个点按照最下的点开始进行查找 每次从一个点出发然 ...
- 20155305乔磊2016-2017-2《Java程序设计》第五周学习总结
20155305乔磊2016-2017-2<Java程序设计>第五周学习总结 教材学习内容总结 try.catch 1.求平均数程序示例 import java.util.Scanner; ...
- 隐马尔可夫模型(HMM)学习笔记一
学习了李航的<统计学习方法>中隐马尔可夫模型(Hidden Markov Model, HMM),这里把自己对HMM的理解进行总结(大部分是书本原文,O(∩_∩)O哈哈~,主要是想利用py ...
- C/C++之学习笔记
[C语言的Static inline 函数的作用] [printf打印格式] %x 打印十六进制 %d 打印十进制 %b 打印二进制 %c 打印字符 %s 打印字符串 %f 打印单精度flo ...
- SNMP学习笔记之SNMPv3的报文格式以及基于USM的认证和加密过程
下面我们就主要讲解SNMPv3的报文格式以及基于USM的认证和加密过程! 1.SNMPv3的消息格式 如下图1: 图 1 其中,整个SNMPv3消息可以使用认证机制,并对EngineID.Contex ...
- bzoj1652 / P2858 [USACO06FEB]奶牛零食Treats for the Cows
P2858 [USACO06FEB]奶牛零食Treats for the Cows 区间dp 设$f[l][r]$为取区间$[l,r]$的最优解,蓝后倒着推 $f[l][r]=max(f[l+1][r ...
- Python3 ChromeDriver与Chrome版本映射表(更新至v2.43)
Python3 ChromeDriver与Chrome版本映射表(更新至v2.43) ChromeDriver下载链接:http://chromedriver.storage.googleapis.c ...
- Android实践项目汇报(二)
Google天气客户端 本周学习计划 学习布局控件和XML解析的相关知识. 看懂程序代码. 把借鉴代码成功导入到Android Studio中并运行成功. 实际完成情况 我学习到布局控件XML在res ...
- HDU 1247 Hat’s Words(字典树)题解
题意:给一个字符串集,要你给出n个字符串s,使s能被所给字符串集中的两个相加所得(ahat=a+hat) 思路:简单字典树题,注意查询的时候要判断所指next是否为NULL,否则会RE非法访问. 代价 ...
- nginx 安装手记
Nginx需要依赖下面3个包 1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) zlib-1.2.8.tar.gz 2. rewrite 模块需要 p ...