如何在leaflet地图上添加按钮

如何在leaflet地图上添加按钮,第1张

Web地图服务(WMS):利用具有地理空间位置信息的数据制作地图,其中将地图定义为地理数据可视的表现,地图本身并不是数据。地图通常以图像格式表达,例如PNG,GIF或是JPEG,有时候也表达为基于矢量图形,如可缩放矢量图形(SVG)或是网络电脑图形元文件等格式(WebCGM)。根据OGC规范,地图服务是专门提供共享地图数据的服务,负责根据客户程序的请求,提供地图图像、指定坐标点的要素信息、以及地图服务的功能说明信息。

WMS规范定义了三个接口( *** 作):GetCapabilities(获取服务能力), GetMap(获取地图)和GetFeatureInfo(获取对象信息)。其中GetMap为核心 *** 作。GetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述;GetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。这个规范还定义了一个用于调用上述 *** 作的万维网统一资源定位器(URL)语法和服务级元数据的XML(可扩展标记语言)表达法。

按照HTML标准,按钮的表示如下:

<input class="class1 class2" type="button" value="这是一个按钮" style="">

1,在上面的代码中里面的style属性,把要修改的属性直接写到style里面,属性与值之间用冒号分割,多个属性间用分号分隔,如

style="width:100pxbackground-color:#123"

2,为元素应用样式类,即上面代码里面的class里面的内容,其中的每个值都代表一个已定义的样式类,多个样式类之间用空格隔开,样式类一般定义在单独的样式文件中,比如下面图片中的内容是bootstrap.css里面的部分内容,其中以点开始的如container就是样式类了。

3,对于前端开发而言,目前有许多比较流行的开源框架,里面都预定义了一些常用的样式,比如你说的按钮,在bootstrap中,通过简单的使用class="btn btn-default"就可以将任意元素表现成一个按钮的样子

在为窗口中加入命令之前,我们需要给窗口一个布局界面,这里需要注意,没有布局的窗口是无法往里面加入任何东西的。布局有很多的方式,在这里我们使用一个columnLayout,这是一个纵列的布局,其中有许多的参数,这里我们简单的使用-adj,他的作用是让元素对齐窗口的两边。我们的这一句布局要放在showWindow之前,也要在窗口元素(按钮等)之前,保证mel的正确运行。

现在来为窗口添加一个按钮。按钮的mel为button,这里介绍他的三个后缀,分别是-label,-h,-c

-label:标题,也就是按钮的名字,后接字符串,为自己的按钮起个名字,这里我们叫myButton。

-h:高度,定义按钮的高度,后接一个浮点数。

-c:命令,决定这个按钮摁下去会执行一个什么 *** 作,后接proc(程序)。

我们来完整的写一下这个按钮:

button -l "myButton" -h 20 -c ""

这里的-c后面我暂时留空,因为我们还没有定义出一个proc来让他调用。这是我们接下来要完成的。现在我们先把这句mel放在布局之后的位置,然后使用//屏蔽掉从-c开始的内容,运行一下看看我们现在窗口的样子。

如何往窗口中添加按钮以及通过按钮执行命令

我们已经可以看到自己的窗口与按钮,如果觉得按钮太小了,还可以增大-h后面的值。现在这个按钮不会发挥任何作用,我们要为其定义一个程序来让其使用。

使用proc定义一个自定义的程序,他的格式如下:

proc 名字(行参){内容}。

这里的行参可能不太容易理解,所幸简单的命令并不需要用到它,留空就可以了。这里我们来自定义一个可以完成对齐功能的程序。

对齐的mel为:

string $ParCons[] = `parentConstraint`

delete $ParCons

这两句mel可以让后选择的物体对齐到先选择的物体上,其实就是简单地利用了父子链接,这里不多解释,我们开始使用proc定义程序。

proc ALT(){

string $ParCons[] = `parentConstraint`

delete $ParCons

}

这里程序的名字是可以随意定义的,之后再button中调用时需要用到,注意我们虽然没有行参,仍要写小括号,只是将其留空即可。现在我们将程序的名字ALT加入到button的-c之后,注意需要用引号将其提示为字符串。

最终的mel如下

if(`window -ex "myWin1"`){

deleteUI -window myWin1

}

window -title "myFirstWin" -wh 300 500 myWin1

columnLayout -adj 1

button -l "myButton" -h 20 -c "ALT"

showWindow myWin1

proc ALT(){

string $ParCons[] = `parentConstraint`

delete $ParCons

}

绿色部分为我们的窗口部分,红色使我们定义的程序。这个proc实际上是定义了一个后台的指令,而我们在button中通过-c调用了他,他自动执行这个指令中的命令,也就是具有对齐功能的mel,完成了按钮与程序指令的链接,让这个按钮有了自己的用处。

如何往窗口中添加按钮以及通过按钮执行命令

最后我们可以将这段mel拖到工具架上供日后使用,将来会介绍如何使用mel在maya的菜单中添加自己想要的菜单栏,并为其添加子元素。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11869873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存