ArcGIS API for JavaScript学习笔记——特征图层FeatureLayer

  • FeatureLayer继承自GraphicsLayer
  • 除了用来处理客户端图形特征,还能执行查询、选择操作、编辑以及支持定义表达式。
  • 特征图层将几何信息传输到客户端电脑,然后显示再web浏览器,减少了往返服务器的时间,提高了服务器端应用程序的性能。适用于响应用户交互的图层。

一、创建FeatureLayer对象

需要指向服务中的某个具体图层

var earthquakes = new FeatureLayer(url,options{})

可选参数:
outFields:返回的字段
refreshInterval:多长时间刷新图层(用于经常改变的数据,新记录、已被修改或删除的记录)
infoTemplate:单击时在信息窗口显示的信息
。。。

二、定义显示模式

模式定义特征feature何时以及如何从服务器端传输到客户端,会影响应用程序的速度和外观。

1. 快照模式

获取所有特征信息传输到客户端。好处是无需再次请求数据。大数据集会影响性能

var earthquakes = new FeatureLayer(url,{mode:FeatureLayer.MODE_SNAPSHOT})

2. 按需模式

当需要的时候才去获取,只返回当前视野范围内的特征。当缩放或平移时,特征会从服务器端传到客户端。适用于大数据集

var earthquakes = new FeatureLayer(url,{mode:FeatureLayer.MODE_ONDEMAND})

3. 选择模式

仅当客户端进行选择操作后才返回特征。

var earthquakes = new FeatureLayer(url,{mode:FeatureLayer.MODE_SELECTION})

三、设置定义表达式

用来限制输出到客户端并满足属性约束的特征

FeatureLayer.setDefinitionExpression("PROD_GAS = 'Yes'")
FeatureLayer.getDefinitionExpression()    // 获取当前设置的定义表达式,返回字符串

四、特征选择

选择出来的特征作为图层中的子集,可用来查看、编辑、分析或作为其他操作的输入

var selectQuery = new Query()  // 查询条件
selectQuery.geometry = geometry
featureLayer.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW) // 选中相应的特征

这里想找个实例看具体怎么实现的,用于什么情况

五、特征图层渲染

渲染器为featureLayer或graphicLayer定义符号,根据属性变化颜色或大小。

1. 五种不同的渲染器

SimpleRender:设置同样符号
ClassBreaksRender:根据数字字段分级符号化
UniqueValueRender:根据字符串字段符号化
DotDensityRender:显示离散空间的密度分布情况
TemporalRender:基于时间特征符号化,用来显示历史信息或靠近实时的数据

2. 渲染过程

// 1. 创建渲染器
var renderer = new ClassBreaksRender(symbol, "POP")
// 2. 定义符号
renderer.addBreak(0, 5, new SimpleFillSymbol().setColor(new Color([255, 0, 0, 0,5])))
renderer.addBreak(5.01, 10, new SimpleFillSymbol().setColor(new Color([255, 255, 0, 0,5])))
// 3. 应用到特征图层
feature.setRender(renderer)
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页