尝试一下在线预览这个示例演示了如何在 MapImageLayer 中创建 动态地图图层 。动态地图图层允许动态更改地图服务图层的属性,包括标签、渲染器、可见性和定义表达式。动态图层被创建为 MapImageLayer 的 子图层 。这意味着多个动态图层可以指向相同的地图服务图层,因此您可以从相同的数据源复制图层到 MapImageLayer 。
在下面的代码片段中,三个子图层被添加到 MapImageLayer 中。在这种情况下,子图层的 id 属性不引用服务图层的图层 ID 。
而是由用户决定唯一地标识图层。服务图层的图层 ID 在 源 的 mapLayerId
属性中被引用。本例中的源类型为 map-layer
, 由用户或开发人员在设置 mapLayerId
属性时推断。请注意,所有三个图层都指向相同的源图层 ID ,但以不同的方式动态地更改该图层的属性。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const layer = new MapImageLayer({
url: "https://sampleserver6.geosceneonline.cn/arcgis/rest/services/Census/MapServer",
sublayers: [
{
id: 10,
renderer: {
type: "class-breaks"
// set other renderer properties in this object
},
source: {
mapLayerId: 1
}
},
{
id: 11,
renderer: {
type: "unique-value"
// set other renderer properties in this object
},
definitionExpression: "POP07_SQMI >= 5100",
source: {
mapLayerId: 1
}
},
{
id: 12,
renderer: {
type: "simple"
// set other renderer properties in this object
},
definitionExpression: "POP07_SQMI >= 5100",
source: {
mapLayerId: 1
}
}
]
});
要查看地图服务中图层的默认渲染器,请删除对此示例中定义的渲染器的引用或查看 MapImageLayer - Toggle sublayer visibility 示例。