ArcGIS For Silverlight api 简介

本文简述了ArcGIS For Silverlight API,尽管已被弃用,但其稳定性优于JS和Flex。学习曲线平缓,且由于ArcGIS API的统一架构设计,掌握它能帮助理解整个GIS开发。主要涉及Map对象、图层及相关工具包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为大ESRI一族最炫酷的前端组件,竟然无情的被抛弃了,实在是可惜。不过在目前为止,SL还是最稳定的一个前端远比js和Flex要好的多。学习的曲线也是最简单的,同样因为ArcGIS家族的所有api都有着同样的架构设计,因而是一通百通,如果对GIS开发有兴趣的同学,不妨听我来讲一讲。

首先:和其他ArcGIS组件一致,SilverLight也是围绕Map对象,一些列的图层,以及其他工具包。

Map对象是图层的容器,可以加载各种Layer,Layer是各种图层的抽象类。分三种格式:服务器静态缓存Tiled类型(TiledLayer)、服务器动态生成类型(DynamicLayer)、客户端动态绘制(GraphicLayer)。每一种类型都有其优势和不足的地方,需要开发人员依据数据量和网路情况以及业务流程 灵活的使用不同的Layer来展现数据。
不同的图层实现对应的不同的地图服务。实质上是Map对象在组织不同格式的数据采取的分治策略。以及Webapi在大数据量下的处理形式,局部刷新和动态处理两种结合。服务器端缓存速度快但数据不能自定义样式,本地绘制样式自由定义但是数据量不能太大;服务器端动态生成满足动态性,但是对响应速度有影响。配合ArcGIS Server所持有的不同服务能力,web api对应的也有相应的显示组件。


GraphicLayer和FeatureLayer都属于本地绘制图层类。区别在于FeatureLayer是对应于ArcGISServer的FeatureService服务的,而GraphicLayer是纯粹本地要素绘制显示的图层,不对应服务器端任何服务,它是开发者自己绘制图形的图层,默认Map对象就自带一个GraphicLayer。构建一个Graphic需要一个Feature和Symbol对象。

1.地图交互:  主要事件在Map、Graphic和FeatureLayer。因为这三类对象都是离散的本地对象,可以被轻易的选取和操作。尤其以Graphic为主,动态性的增删改查是时常的动作。
 Map有对图层的增删改查以及自身的事件(点击、放大/缩小、平移)。
 GraphicLayer中有大量的Graphic存在,点击事件最常见。再就是选取功能,选取的结果就是一个Graphic数组对象 使用 SelectedGraphics接口获取到,GraphicLayer.Graphics属性是获取到GraphicCollection对象的接口。
  集合的管理使用通常就是查找排序以及增删。查找有contains,增加add ,addRange,删除remove之类的,更新使用setItem。(ArcGIS的接口名称总是这么怪怪的,不爽啊啊啊)


重点是FeatureLayer。该对象能加载ArcGIS Server发布的三个服务,都是矢量数据服务。MapServer、FeatureServer、Spatial data Service。FeatureLayer有几个重要的属性:
        timeExtent,时间轴,是由数据属性提供。
        Mode:加载数据的策略,snapsshot 全部加载,ondemand 按需也就是视野范围内,selection only 只有生成了选择数据集的时候才加载.
        要素过滤条件设置:   可以带一个过滤条件:where="id>100"
        FeatureSymbol是为FeatureLayer定义图层符号,有三种点线面三种符号类型。
        符号系统是为了将单纯的数据表达成易于识别的图形,这里符号包含三种方法:形状样式Style、颜色Color、数量。
        所有的Symbol类构造器构建的法则是:Style定义样式,Color定义填充色,还有外围线本身又是一种Symbol,new SimpleLineSymbol(new SimpleLineSymbol.STYLE_SOLD,new Color("red"),2);2指的是线宽2单位,样式为SOLD,填充为红色。改线Symbol当做FillSymbol的外围线。

        Graphic在页面中经常会被用户编辑,编辑之后同步到后台数据库中需要FeatureLayer的一个接口功能,因为大部分的数据更新操作都要在FeatureLayer中进行。


至于其他组件基本上是工具类和扩展包,使用的时候只要用到查询一下就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值