antv-l7/docs/api/component/control.en.md

140 lines
2.3 KiB
Markdown
Raw Normal View History

2019-11-21 13:06:13 +08:00
---
title: Control
order: 1
---
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
# control
地图组件 用于控制地图的状态如果平移,缩放,或者展示地图一些的辅助信息如图例,比例尺
## 构造函数
```javascript
const baseControl = new L7.Control.Base(option);
```
#### option
2019-12-02 15:16:45 +08:00
position: `string` 控件位置支持是个方位 `bottomright, topright, bottomleft, topleft`
2019-11-21 13:06:13 +08:00
#### scene 内置地图组件
2019-12-02 15:16:45 +08:00
zoom 地图放大缩小   默认添加<br />Scale 地图比例尺     默认添加<br />attribution 地图数据属性    默认添加<br />layer 图层列表
**scene 配置项设置控件添加状态**
2019-11-21 13:06:13 +08:00
```javascript
scene = new L7.scene({
2019-12-02 15:16:45 +08:00
zoomControl: true,
scaleControl: true,
attributionControl: true,
});
2019-11-21 13:06:13 +08:00
```
2019-12-02 15:16:45 +08:00
####
2019-11-21 13:06:13 +08:00
#### Zoom
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
放大缩小组件 默认 左上角
```javascript
2019-12-02 15:16:45 +08:00
new L7.Control.Zoom({
position: 'topleft',
}).addTo(scene);
2019-11-21 13:06:13 +08:00
```
#### Scale
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
比例尺组件默认左下角
```javascript
2019-12-02 15:16:45 +08:00
new L7.Control.Scale({
position: 'bottomleft',
}).addTo(scene);
2019-11-21 13:06:13 +08:00
```
#### attribution
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
默认右下角
```javascript
new L7.Control.Attribution({
2019-12-02 15:16:45 +08:00
position: 'bottomleft',
}).addTo(scene);
2019-11-21 13:06:13 +08:00
```
#### layer
2019-12-02 15:16:45 +08:00
图层列表目前只支持可视化 overlayers 图层控制
2019-11-21 13:06:13 +08:00
```javascript
2019-12-02 15:16:45 +08:00
var overlayers = {
围栏填充: layer,
围栏边界: layer2,
};
2019-11-21 13:06:13 +08:00
new L7.Control.Layers({
2019-12-02 15:16:45 +08:00
overlayers: overlayers,
2019-11-21 13:06:13 +08:00
}).addTo(scene);
```
## 方法
#### onAdd
2019-12-02 15:16:45 +08:00
组件添加到地图 Scene 时调用,自定义组件时需要实现此方法
2019-11-21 13:06:13 +08:00
#### addTo
2019-12-02 15:16:45 +08:00
添加到地图 scene
2019-11-21 13:06:13 +08:00
```javascript
control.addTo(scene);
```
#### setPosition
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
设置组件位置
```javascript
control.setPosition('bottomright');
```
#### remove
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
移除地图组件
```javascript
control.remove();
```
## 示例代码
#### 自定义图例控件
2019-12-02 15:16:45 +08:00
2019-11-21 13:06:13 +08:00
[源码](https://antv.alipay.com/zh-cn/l7/1.x/demo/component/extendControl.html)
```javascript
var legend = new L7.Control.Base({
2019-12-02 15:16:45 +08:00
position: 'bottomright',
});
legend.onAdd = function() {
var el = document.createElement('div');
el.className = 'infolegend legend';
var grades = [0, 8, 15, 30, 65, 120];
for (var i = 0; i < grades.length; i++) {
el.innerHTML +=
'<i style="background:' +
colors[i] +
'"></i> ' +
grades[i] +
(grades[i + 1] ? '' + grades[i + 1] + '<br>' : '+');
}
return el;
};
legend.addTo(scene);
2019-11-21 13:06:13 +08:00
```
2019-12-02 15:16:45 +08:00
##
2019-11-21 13:06:13 +08:00
## FAQ