`

【Leafletjs】5.L.Control 自定义一个Control

 
阅读更多

L.Control

所有leaflet控制的基础类。继承自IControl接口。 你可以这样添加控件:

control.addTo(map);
// the same as
map.addControl(control);

构造器

构造器 使用 描述
L.Control( <Control optionsoptions? ) new L.Control()
L.control()
通过给定的选项创建一个控制。

Options

选项 类型 默认值 描述
position String 'topright' 控制初始的位置(在地图的某一角)。参见 control positions.

Methods

方法 返回值 描述
setPosition( <String> position ) this 设置控制的位置。参见 control positions.
getPosition() String 返回控制的当前位置。
addTo( <Mapmap ) this 将控制添加到地图上。
removeFrom( <Mapmap ) 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.

Position 描述
'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); }, });

复制代码

在定义一些样式后效果如下

高级一点可以定义如下扁平样式的:

 

 
 
分享到:
评论

相关推荐

    android.hardware.camera2自定义相机

    开发者需要提供一个预览的目标`Surface`和一组捕获请求,然后通过`CameraDevice.createCaptureSession()`方法创建会话。 **4. 图像捕获** 捕获图片通常通过创建一个`ImageReader`对象完成,它会监听特定格式和尺寸...

    WPF.Util.Controls全套自定义样式

    例如,一个自定义的按钮可能具有独特的动画效果、边框样式或背景图像。 其次,这套自定义样式可能包括了数据模板(DataTemplate),用于决定如何显示数据项。数据模板允许开发者以可视化的形式呈现数据,使其更适合...

    Script Control执行自定义过程

    2. **在Form2中定义过程**:在Form2中,我们可以编写一个自定义的过程,例如: ```vb Private Sub MyCustomProcedure() ' 在这里实现你的逻辑 MsgBox "这是Form2中的自定义过程!" End Sub ``` 3. **在Form1中...

    ControlCAN.dll

    ControlCAN.dll是一个动态链接库(DLL)文件,主要用于与周立功公司的CAN(Controller Area Network)PCI接口卡进行通信。CAN总线是一种广泛应用于汽车、工业自动化和其他嵌入式系统的串行通信协议,它以其高可靠性...

    ChoiceTech.Halcon.Control.rar

    在标题"ChoiceTech.Halcon.Control.rar"中,我们可以看出这是一个关于Halcon的定制化开发项目,具体涉及到了`HWindowControl`的二次开发。 `HWindowControl`是Halcon提供的一个图形用户界面组件,允许开发者将处理...

    使用Custom Control自定义控件

    在软件开发中,自定义控件(Custom Control)是一种强大的技术,它允许开发者根据特定需求扩展或修改标准的用户界面元素。自定义控件能够帮助我们实现独特且富有创意的界面设计,提供更加个性化的用户体验。本文将...

    C#自定义控件.rar

    7. **打包与使用**:完成自定义控件后,可以将其封装到一个自定义用户控件库(User Control Library)或自定义组件库(Component Library),然后在其他项目中引用这个库,从而方便地在多个项目中复用。 在压缩包...

    在Xamarin.Forms项目中的自定义框架上滑动手势_C#_下载.zip

    本文将深入探讨如何在C#语言的基础上,为Xamarin.Forms项目设计一个自定义框架,并实现上滑动的手势识别功能。 首先,我们需要理解Xamarin.Forms的基本架构。Xamarin.Forms是一个跨平台的UI工具包,它允许开发者...

    test_list_control.rar_list control_test_ListControl

    3. **LabelItem.cpp**:这可能是一个自定义列表项类的实现,用于扩展 ListControl 的默认行为,例如,可能包含有额外的数据结构或自定义的绘制逻辑。 4. **StdAfx.cpp** 和 **StdAfx.h**:这些文件是 Visual Studio...

    mfc.selection.combined.control.code.rar_color control

    总的来说,这个代码示例展示了如何在MFC环境中创建一个自定义的、具有颜色选择功能的组合控件。通过学习和理解这个代码,开发者可以掌握自定义控件的设计原则和技巧,提升MFC应用程序的用户体验。

    MFC.edit.list.box.control.code.rar_EDIT CONTROL_MFC_list control

    编辑列表框(Edit List Box)是编辑框和列表框的组合,它允许用户在列表中选择一个条目,或者在单独的编辑框中输入自定义值。这种控件在许多需要用户输入数据或从预定义选项中选择的应用场景下非常有用。以下是对这...

    ControlCAN C++动态库 64位_32位

    ControlCAN ControlCAN_x64.zip ControlCAN.h x64 ControlCAN.dll ControlCAN.lib ControlCAN_x32.zip ControlCAN.h x32 ControlCAN.dll ControlCAN.lib 接口函数库(二次开发库)使用说明书.pdf

    control.tar.gz

    "control.tar.gz" 是一个常见的Linux或Unix系统中的压缩文件,它包含了一系列与软件包管理相关的文件。在Linux的世界里,这种格式常用于Debian和Ubuntu等基于Debian的发行版,作为DEB软件包的一部分。这个压缩包的...

    Led Control SystemV3.53

    在实际操作中,"Led Control System V3.53.exe"这个文件是程序的执行文件,双击即可启动安装过程。安装过程中,遵循提示进行即可,一般包括接受许可协议、选择安装路径、创建桌面快捷方式等步骤。安装完成后,通过...

    LControl.zip_LISTCONTROL 重写_lcontrol_list control_listcontrol

    6. **多态设计**:通过继承ListControl类并重写其方法,可以创建一个可复用的自定义控件,方便在不同项目中应用。 学习并理解这个重写案例,可以帮助开发者掌握如何更好地利用ListControl控件,提升应用界面的个性...

    Calculator-XControl.zip_Xcontrol_labview Xcontrol

    Calculator-XControl.zip_Xcontrol_labview Xcontrol 是一个与LabVIEW相关的资源包,它包含了一个名为“Calculator XControl”的自定义控件。LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench,是...

    J.E. Marsden.Geometric Control of Simple Mechanical Systems.Springer.2004

    J.E. Marsden.Geometric Control of Simple Mechanical Systems.Springer.2004, good

    USBCAB.dll、ControlCAN.dll64位库+QT5例程+上位机程序接口说明文档

    “QT5”是一个流行的开源跨平台应用程序开发框架,由Qt Company维护。它使用C++语言,并提供丰富的图形用户界面(GUI)组件和网络、数据库等多方面的功能。在这里,“QT5例程”可能是指使用QT5编写的示例程序或代码...

    WPF自定义控件,UserControl的制作与使用过程

    关于压缩包中的"NeiMLabel"文件,可能是作者创建的一个具有内部逻辑或特殊功能的自定义Label控件。这个控件可能扩展了标准的Label控件,增加了新的属性或行为,比如动画效果、自适应文本、鼠标交互等。但具体的实现...

Global site tag (gtag.js) - Google Analytics