L.Control
所有leaflet控制的基础类。继承自IControl接口。 你可以这样添加控件:
control.addTo(map);
// the same as
map.addControl(control);
构造器
L.Control( <Control options> options? ) |
new L.Control(…) L.control(…)
|
通过给定的选项创建一个控制。 |
Options
position |
String |
'topright' |
控制初始的位置(在地图的某一角)。参见 control positions. |
Methods
setPosition( <String> position ) |
this |
设置控制的位置。参见 control positions. |
getPosition() |
String |
返回控制的当前位置。 |
addTo( <Map> map ) |
this |
将控制添加到地图上。 |
removeFrom( <Map> map ) |
this |
将控制从地图上移除。 |
getContainer() |
HTMLElement |
返回 the HTML container of the control. |
Control Positions(控制的位置)
Control positions (map corner to put a control to) are set using strings. Margins between controls and the map border are set with CSS, so that you can easily override them.
'topleft' |
地图的左上角。 |
'topright' |
地图的右上角。 |
'bottomleft' |
地图的左下角。 |
'bottomright' |
地图的右下角。 |
下面讲下如何创建一个自定义控件
基本模板:
L.Control.XXX= L.Control.extend({ //在此定义参数
options: { },
//在此初始化 initialize: function (options) { L.Util.extend(this.options, options); }, onAdd: function (map) { //可在此添加控件内容 } });
以此模板创建一个简单图例控件
L.Control.Legend = L.Control.extend({ options: { position: 'topright' //初始位置 }, initialize: function (options) { L.Util.extend(this.options, options); }, onAdd: function (map) {
//创建一个class为leaflet-control-clegend的div
this._container = L.DomUtil.create('div', 'leaflet-control-clegend');
//创建一个图片要素 var legendimg = document.createElement('img'); legendimg.id = 'leaflet-control-clegend'; legendimg.type = 'img'; legendimg.src = "../../Content/legend.png"; this._legendimg = legendimg; //创建一个关闭控件的按钮 var closebutton = document.createElement('a'); closebutton.id = 'leaflet-control-geosearch-close'; closebutton.className = 'glyphicon glyphicon-remove'; this._closebutton = closebutton; this._container.appendChild(this._closebutton); this._container.appendChild(this._legendimg); //注册关闭事件 L.DomEvent.addListener(this._closebutton, 'click', this._onCloseControl, this); return this._container; }, _onCloseControl: function () { this._map.options.Legend = false; this.removeFrom(this._map); }, });
在定义一些样式后效果如下
高级一点可以定义如下扁平样式的:
相关推荐
- 使用`L.layerGroup`可将多个图层组合在一起方便管理,`L.control.layers`则可以创建图层控制面板,让用户切换图层。 8. **弹出窗口(Popups)** - 通过`bindPopup`方法关联元素与弹出窗口,可以展示额外信息。 ...
为了添加自定义标记,创建一个新的`L.Marker`对象,并将其添加到地图上: ```javascript var marker = L.marker([51.5, -0.09]).addTo(map); ``` 你可以为标记添加弹出窗口,包含自定义内容: ```javascript marker....
例如,添加标记可以用`L.marker`,添加弹窗用`bindPopup`,图层控制则可以借助`L.control.layers`。这些功能使得Leaflet成为一个强大的工具,能够满足各种地图应用的需求。 总结来说,Leaflet作为一个灵活的...
6. **图层控制**:`L.Control.Layers`允许用户切换不同的图层,每个图层可以有自己的样式。 7. **图例和控件**:可以创建图例来解释不同样式代表的意义,使用`L.control`创建自定义控制。 8. **插件扩展**:...
- 通过`L.control.zoom()`、`L.control.scale()`等方法创建控件,并添加到地图的边缘。 - 示例可能展示了如何自定义控件,以满足特定需求。 7. **事件监听**: - Leaflet允许注册事件监听器,捕获用户与地图的...
3. **图层控制**:通过`L.control.layers`创建图层控制,允许用户切换不同的地图图层,如卫星图、地形图等。 4. **事件监听**:通过监听地图上的`click`、`mousemove`等事件,实现用户交互,如点击地图获取坐标,...