admin管理员组文章数量:1650782
ArcGIS API for JavaScript 开发
- FeatureLayer
-
- (1)创建一个FeatureLayer
- (2)popupTemplate 弹出模板
- (3)renderer 渲染器
- (4)visible 可见的
- (5)fields 字段
- (6)outFields 字段
- (7)listMode
- (8)loaded
- (9)opacity
- (10)title
- (11)geometryType
- (12)definitionExpression
- (13)createQuery()
- (14)queryFeatures(query, options)
- (15)queryObjectIds(query, options)
- (16)where
- (17)clone()
FeatureLayer
require(["esri/layers/FeatureLayer"], function(FeatureLayer) {
/* code goes here */ });
FeatureLayer是一个可以从地图服务或功能服务创建的单层;ArcGIS在线或ArcGIS企业门户项目;或者来自客户端特性的数组。该层可以是空间层(具有地理特性),也可以是非空间层(表)。
空间层由离散的特征组成,每个特征都有一个几何图形,可以在2D MapView或3D SceneView中呈现为带有空间上下文的图形。特性还包含数据属性,提供关于它所代表的实际特性的附加信息;属性可以在弹出窗口中查看,并用于渲染层。可以查询、分析和呈现特征层,以便在空间上下文中可视化数据。
非空间层是一个没有表示地理特征的空间列的表。
(1)创建一个FeatureLayer
FeatureLayers可以通过以下三种方式之一创建:从服务URL创建、从ArcGIS门户项目ID创建,或者从客户端特性数组创建。
引用服务URL
要从服务创建FeatureLayer实例,必须将url属性设置为特性服务或映射服务中的层的REST端点。要使层在视图中可见,必须将其添加到视图引用的映射中。有关向映射添加层的信息,请参见map. add()。
require(["esri/layers/FeatureLayer"], function(FeatureLayer){
const fl = new FeatureLayer({
url: "https://sampleserver6.arcgisonline/arcgis/rest/services/Census/MapServer/3"
});
map.add(fl); // 将图层添加到地图中
});
可以从服务中的表url创建非空间表实例,并且必须通过调用load()方法加载表。
// 添加一个非空间表。
require(["esri/layers/FeatureLayer"], function(FeatureLayer){
const table = new FeatureLayer({
url: "https://sampleserver6.arcgisonline/arcgis/rest/services/SF311/FeatureServer/1"
});
table.load().then(function() {
// 表加载。准备在服务器上查询。
});
});
如果从不同的域请求服务,则需要启用CORS的服务器或代理。
引用ArcGIS门户项目ID
如果它在ArcGIS Online或ArcGIS Enterprise中以项的形式存在,你还可以用它的ID创建一个FeatureLayer。例如,下面的代码片段展示了如何使用portalItem属性向映射添加一个新的FeatureLayer实例。
const fl = new FeatureLayer({
portalItem: {
id: "8444e275037549c1acab02d2626daaee"
}
});
map.add(fl);
添加客户端特性数组
客户端特性也可以用来创建特性层。因为FeatureLayer需要一个模式,所以在从特性数组创建一个层时需要设置几个属性。必须使用geometryType属性和一个有效的空间引用来指定特性的几何类型(因为每个层只允许一个几何类型)。objectId字段必须与字段对象数组一起指示,提供每个字段的模式。一旦指定了这些属性,就必须将特性数组设置为source属性。请查看使用客户端图形示例创建一个FeatureLayer,以查看实际情况。
如果在层初始化时缺少任何所需的参数,API将尝试从提供的参数中确定所需的参数。例如,可以根据提供给源属性的特性来确定spatialReference、geometryType、hasZ和hasM属性。但是,如果源属性在初始化时是一个空数组,则无法确定geometryType,该层将被拒绝。
如果特性是在运行时添加、删除或更新的,那么使用applye()来更新特性,然后使用queryFeatures()来返回更新的特性。请从FeatureLayer示例中查看添加或删除图形,以了解实际情况。属性值用于针对客户端特性层执行的属性查询,并且层视图区分大小写。
const layer = new FeatureLayer({
// 为每个字段对象创建一个esri/layers/support/Field的实例object
fields: [
{
name: "ObjectID",
alias: "ObjectID",
type: "oid"
}, {
name: "type",
alias: "Type",
type: "string"
}, {
nam
本文标签: APIArcGISFeatureLayerJavaScript
版权声明:本文标题:ArcGIS API for JavaScript开发之FeatureLayer 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729530964a1204799.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论