1. GraphicsLayer(纯前端本地图层 ✅ 最常用)
GraphicsLayer | References | ArcGIS Maps SDK for JavaScript
作用:纯客户端绘制点 / 线 / 面 / 文字,无服务、不发请求
1 创建 GraphicsLayer
const layer = new GraphicsLayer({
id: "my-layer",
title: "客户端图层",
visible: true
})
map.add(layer)
2 核心属性
layer.graphics // 要素集合 [Graphic]
layer.visible // 显隐 控制图层
layer.opacity // 透明度 0~1
layer.title / id //标题和id
3 核心 方法
// 添加
layer.add(graphic)
layer.addMany([g1, g2]) // 批量 ✅ 快
// 删除
layer.remove(graphic)
layer.removeMany([g1,g2])
layer.removeAll() // 清空 ✅
// 查询
layer.graphics.toArray() // 获取所有要素 进行graphics 操作
layer.graphics.length // 要素数量
4 适用场景
- 本地标注、绘制、测量
- 临时点位、轨迹、面
2. FeatureLayer(服务端 / 本地要素图层)
FeatureLayer | References | ArcGIS Maps SDK for JavaScript
作用:带属性、支持查询 / 编辑 / 增删改,可服务端可本地 空间分析 要素查询
带数据库属性表、支持 SQL 查询、支持增删改查、支持空间分析
1 创建要素图层
① 服务端 FeatureLayer
const layer = new FeatureLayer({
url: "https://xxx/arcgis/rest/services/xx/FeatureServer/0",
id: "build-layer"
})
② 本地纯前端 FeatureLayer
const layer = new FeatureLayer({
source: new Collection(), // 本地数据源
fields: [
{ name: "OBJECTID", type: "oid" },
{ name: "name", type: "string" }
],
objectIdField: "OBJECTID",
geometryType: "point"
})
2 核心属性
✅ layer.source —— (本地 / 客户端数据源,Graphic 集合)
✅ layer.fields —— (字段定义数组) 属性表
✅ layer.geometryType —— (point /polyline/polygon…)
✅ layer.visible —— (布尔,显示 / 隐藏图层)
✅ layer.opacity —— (0–1 透明度)
✅ layer.renderer —— (渲染器,样式)
✅ layer.labelingInfo —— (标注配置,LabelClass 数组)
3 (增删改查 ✅)
// 查询 都是异步方法,必须 await 或 .then() where: "1=1" = 查询全部
layer.queryFeatures({ where: "1=1" })
layer.queryExtent()// 查询图层总范围
layer.queryFeatureCount()// 查询要素总数
// 编辑(服务端 + 本地都能用) 传 Graphic[] 或 { objectId }[]
layer.applyEdits({
addFeatures: [], // 新增
updateFeatures: [], // 修改
deleteFeatures: [] // 删除
})
// 标注
layer.labelingInfo = [...] // 标注样式
layer.labelsVisible = true // 开启显示