# 下钻图层(DrillingLayer)

提示

本图层包含了多个子图层,可以包括 districttownshipneighborhood等,也可以使用任何含义的区划数据,只要数据的属性包含能够体现上下层级的属性即可。这些子图层推荐借助图致服务来完成加载,可以免去准备各级行政区划数据的麻烦。

参考说明:图致服务概述

下钻图层用于实现区,县,村居类型的逐层下钻的效果。

new aimap.DrillingLayer(layerOptions: Object)
1

# 初始化参数

# LayerOptions参数说明

字段名 类型 说明
id string 默认值为${type}.${uuid},该值不允许重复。
map Map 地图对象,如果设置,该图层会自动加载到地图中,如果未设置,需要手动加载图层:addTo(map)
zIndex number | string 图层在地图中所属的垂直方向的位置索引,默认为 0。
layers必须 Array<LogicLayerOptions> 包括区图层,县图层,村居图层的配置项。具体参见:layers
drill DrillOptions 下钻的触发配置,包括以下的属性:
- trigger:上浮和下钻的触发操作,默认:{down: 'click', up: 'contextmenu'}
-hoverStyle:鼠标移入时的高亮效果。
-codeField:用于表示每个区域面的编号的字段。默认为__code__
-parentField:用于表示每个区域面的上级区划的编号的字段,默认为__parent__

# layers

包含了自定义的子图层,可以包含例如 districttownshipneighborhood等行政区图层。layers 为一个数组,区划等级按照从高到低的顺序排列。

每个子图层的必选属性参考下表,其余的属性参考 LogicLayerOptions 配置

字段名 类型 说明
name string 预定义图层的名称。
style Style 本图层支持与面相关的样式配置,用于配置区划面的样式。
以及与点相关的样式配置,用于配置区划中心点样式。

# 示例

var map = new aimap.Map({
    container: 'map',
    center: [121.73137, 31.11906],
    zoom: 8,
    minzoom: 3,
    maxzoom: 20,
    style: 'aimap://styles/aimap/darkblue-v4',
    // 先加载这些 geoStudio 图层,但是不显示。
    layers: [{
        id: 'district-pudong',
        style: {
            visibility: 'none',
        }
    }, {
        id: 'township-pudong',
        style: {
            visibility: 'none',
        }
    }, {
        id: 'neighborhood-pudong',
        style: {
            visibility: 'none',
        }
    }
    ]
});

map.on('loaded', function () {
    var drillingLayer = new aimap.DrillingLayer({
        // layers 中的顺序很重要,要将区划图层按照从高级别到低级别的顺序排列,数量不限。
        layers: [
            {
                // 这里的 name 需要与 geoStudio 图层的 id 对应上
                name: 'district-pudong',
                style: {
                    'fill-color': '#c6cdd8',
                    'fill-outline-color': '#e3e3ff',
                    'text-size': 20,
                    'line-color': 'red',
                    'visibility': 'visible',
                }
            },
            {
                name: 'township-pudong',
                style: {
                    'fill-color': '#6c7cd8',
                    'fill-outline-color': '#e3e3ff',
                    'text-size': 14,
                    'visibility': 'visible',
                }
            },
            {
                name: 'neighborhood-pudong',
                style: {
                    'fill-color': '#829ed8',
                    'fill-outline-color': '#e3e3ff',
                    'text-size': 12,
                    'visibility': 'visible',
                }
            }
        ],
        drill: {
            // 指定下钻,上浮的触发方式
            trigger: {
                down: 'click',
                up: 'contextmenu',
            },
            // 指定鼠标移入到区域面上的高亮方式
            hoverStyle: {
              'line-color': '#ff0000',
              'text-size': 20,
              "text-color": 'white',
              "text-allow-overlap": true
            }
        },
        minZoom: 3,
        maxZoom: 20,
        map,
    });
});
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

# 实例变量

# id

此图层的 id,如果在初始化图层的参数中指定,则为参数中的 id,否则 SDK 内部会自动生成一个 id。

# 示例

var drillingLayer = new aimap.DrillingLayer({...});
console.log(drillingLayer.id); // "drilling.9db79b01-f3c0-4da6-a36a-b4d5827c4e37"
1
2

# type

此图层的类型,对于本图层, type 为固定值:drilling

# 示例

var drillingLayer = new aimap.DrillingLayer({...});
console.log(drillingLayer.type); // "drilling"
1
2

# 实例方法

addTo(map)

如果在初始化图层时,没有传入地图对象参数,则需要使用此方法来将图层添加到地图上。

参数

map(Map):需要添加本图层的地图对象。

返回值

drillingLayer:this

remove()

将本图层从地图中移除,并销毁相关的资源。

返回值

drillingLayer:this

show()

显示该图层。

返回值

drillingLayer:this

hide()

隐藏该图层。

返回值

drillingLayer:this

drillDown(target)

下钻图层。

参数

target(string | number):需要下钻的目标。

返回值

drillingLayer:this

drillUp(target)

上浮图层。

参数

target(string | number):需要上浮的目标。

返回值

drillingLayer:this

setzIndex(zIndex, options?)

设置图层在 z 轴上的顺序。数值越大,层级越高。

参数

zIndex(number | String):大于 0 的整数或者表示地图初始化样式中自带的图层 id。

options(SetzIndexOptions):设置层级的更多参数,具体参见:SetzIndexOptions 配置

返回值

drillingLayer:this

flyTo(options?)

使地图带有动画的跳转,使得图层的中心点位于屏幕中间。

参数

options(SetFocusOptions):跳转动画的更多参数,具体参见:SetFocusOptions 配置

返回值

drillingLayer:this

fitView(options?)

使地图带有动画的跳转,使得图层的数据铺满屏幕。

参数

options(SetFocusOptions):跳转动画的更多参数,具体参见:SetFocusOptions 配置

返回值

drillingLayer:this

setStyle(style, options?)

增量更新图层的样式。

参数

style(style):样式对象,这些样式将增量更新到图层已有的样式上,支持的样式与当前图层一致。

options(SetStyleOptions):设置新样式的其他配置项,具体参见:SetStyleOptions 配置

返回值

drillingLayer:this

setPopup(popup, options)

为图层设置弹窗对象。

参数

popup(Popup | string):Popup对象,或者弹窗中想要显示的内容文本。 options(Options):弹窗的配置项,具体参见:Popup 配置

返回值

drillingLayer:this

getPopup()

获取图层的弹窗对象,如果没有调用过 setPopup 接口,将返回null

返回值

Popup:图层的弹窗对象。

togglePopup()

切换弹窗的显示,隐藏效果。

返回值

drillingLayer:this

on(type, listener)

为图层绑定事件监听。

参数

type(string):事件类型,支持的事件类型可参考 图层事件

listener(Function):如果此处使用匿名函数,则后续将无法解绑。

返回值

drillingLayer:this

once(type, listener)

为图层绑定事件监听,事件只会响应一次。

参数

type(string):事件类型,支持的事件类型可参考 图层事件

listener(Function):如果此处使用匿名函数,则后续将无法解绑。

返回值

drillingLayer:this

off(type, listener)

解除已绑定事件监听。

参数

type(string):事件类型,支持的事件类型可参考 图层事件

listener(Function):通过 on 或者 once 绑定的事件对象。

返回值

drillingLayer:this

# 图层事件

drill

当图层发生上浮或者下钻时触发。

回调事件的参数包括:

  • directiondown表示下钻,up表示上浮。
  • code:上浮或者下钻后的区划的编码。
  • name:上浮或者下钻后的区划的名称。
mousedown

当鼠标点击图层时触发。

mouseup

当鼠标在图层中松开时触发。

click

当鼠标在图层同一点处点击并松开时触发。

dblclick

当鼠标双击图层同一点时触发。

mousemove

当鼠标在图层中移动时触发。

mouseenter

当鼠标从某一图层外部或地图画布外部进入当前图层的可见部分时触发。

mouseleave

当鼠标离开当前图层的可见部分时触发。

最后更新于: 4/29/2022, 2:34:03 PM