Leaflet:Marker、Popup类
Marker、Popup、Tooltip类都是继承自Layer类:Event与Layer
Marker

1、用例
L.marker([41,123]).addTo(map);
2、实例化
L.marker(<LatLng> latlng , <Marker options> options)
3、参数
icon //Icon实例,作为该Marker的显示图标。不写则用默认Marker的Icon,即我们之前给出的那个Marker图像
keyboard //是否用键盘标记该Marker,如果是true,你可以通过按回车键实现点击该Marker的功能,默认true
title //一个显示在Marker上的Browser Tooltip,鼠标在Marker上悬停一段时间可以看到
zIndexOffset //标识Marker的zIndex,如果一个两个Marker相距很近,则在地图上表示时,高zIndex的Marker会覆盖在低zIndex的上边
opcity //透明度 0-1
riseOnHover //默认false,如果设置为true,那么当你鼠标移到该Marker上时它会覆盖在其他Marker上边。但是当移开鼠标后,它跟其他Marker的位置关系还是遵从于zIndex的大小
riseOffset //riseOnHover的机制是,鼠标悬停的Marker的zIndex加上riseOffset得到一个新的zIndex,鼠标悬停处的Marker会覆盖在所有小于该新的zIndex的Marker之上;默认250 //与拖动(Draggable)相关的参数
draggable //是否可拖动,默认false
autoPan //当拖动该Marker到地图边缘时,地图是否发生平移(以使可以把该Marker拖动到更远的范围),默认false
autoPanPadding //当Marker离地图边缘多近时,地图开始平移
autoPanSpeed //平移速度(单位pixel)
4、方法
除了可以用继承而来的Layer的方法外,Marker还有一些特有的方法:
getLatLng() //返回Marker的地理坐标,LatLng类型
setLatLng(<LatLng>latlng) //改变Marker位置到给定坐标
serZIndexOffset(n) //改变该Marker的zIndex offset
setOpacity(n) //改变透明度
5、Properties
Handler
dragging //类型是Handler,是Marker进行dragging时的Handler。
例子:
marker.dragging.disable();//不允许Marker进行拖动
Popup
用Map.openPopup()一次打开一个Popup,用Map.addLayer()可以打开任意多的Popup。
如果仅仅想为一个Layer对象,比如Marker或者Polygon等添加一个Popup并且打开,那很简单:
marker.bindPopup(Content).openPopup();
下面这个例子,是通过创建Popup对象的方式显示Popup:
var popup =L.popup()
.setLatLng(latlng)
.setContent(Content)
.openOn(map);
1、实例化
L.popup(options? )
2、参数
maxWidth //最大宽度,单位pixel
minWidth
maxHeight
autoPan //默认true,如果设置为false,那么在Map将不会把视角移动到该Popup处
keepInView //默认false,如果设置为true,那么你拖动地图时没办法把该popup移动到视图以外。
//但是关上该Popup后就可以拖动了,所以该参数只是保证Popup本身始终在视图以内
//如果之前有一个Popup已经打开,请保证它们在同一个视图内,否则会错误
closeButton //默认true,如果设置为false,那么popup右上角将不会显示关闭的×
autoClose //默认true,如果设置为false,那么在打开另一个Popup时该Popup将不会关闭
3、方法
getLatLng() //返回地理坐标
setLatLng(<LatLng>latlng)
getContent()
setContent(Content)
update() //更新该Popup的内容、布局以及位置
bringToFront() //将该Popup覆盖显示在其他Popup之前
bringToBack() //将该Popup显示在其他Popup之后
openOn(<Map> map)//在map上显示该Popup同时关闭之前的Popup,效果等同于map.openPopup(popup)
4、补充
三种打开Popup的方法:
//假设该Popup对象为popup
//1、Map.openPopup
map.openPopup(popup) //2、popup
popup.addTo(leafletMap)
popup.openOn(leafletMap)//关闭之前所有的Popup //3、Layer.openPopup
var marker =L.marker(latlng).bindPopup(Content).addTo(leafletMap);
marker.openPopup();
只有popup.openOn(leafletMap)会关闭之前的所有Popup,而剩下三种只有在点击时才会关闭之前的Popup
Leaflet:Marker、Popup类的更多相关文章
- Leaflet:Map类属性及方法
1.初始化 L.map(<String> id , options ?) //用地图div的id创建 L.map(<HTMLElement>el , options?) //用 ...
- MarkerOpter marker操作类
构造函数:MarkerOpter=function(p_params): p_params={} 参数描述: p_params.layer; // markerlayer p_params.imgUr ...
- 【Leafletjs】2.添加marker到地图
本人建了一个Leaflet交流群:Leaflet&WebGIS 331437754 接着上篇我们在地图中添加一个marker,非常简单只需添加如下代码即可: var marker = L.m ...
- leaflet 结合 Echarts4 实现统计图(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- 入门Leaflet之小Demo
入门Leaflet之小Demo 写在前面 ---- WebGIS开发基础之Leaflet GIS基本概念:GIS.Map.Layer.Feature.Geometry.Symbol.Data(Poin ...
- leaflet地图库
an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...
- ECMAScript6 中 类的封装与继承
ECMASCRIPT6中实现了class关键字,这样使我们更容易也更形象的进行类的操作 <script type="text/javascript"> class OF ...
- 怎样使用CMenu类
CMenu类从CObject类派生而来.为什么要使用CMenu类呢?AppWzard不是把菜单做好了吗?在资源编辑器上修改菜单不是很方便吗? 我是个vc++初学者,自从当斑竹以来,天天看贴子, ...
- UWP Popup 弹出
一:需求 做一个类似于安卓的弹出消息框,如图.当用户点击下载或者选择时,能够从底部弹出一个提示框,用于提示用户. 二:Popup 类 不需要我们自己额外去写一个弹窗类,微软自己有一个Popup 弹窗类 ...
随机推荐
- web下载文件的头消息
resp.setHeader("Content-disposition","attachment;filename="+filename);
- 计算机网络再次整理————tcp例子前奏[三]
前言 简单编写一下tcp例子. 正文 我们常说IOS有7层,实际上也只有4层,或者这样说简单的说是4层. 首先是数据链路层,首先这一层解决了什么问题呢?为什么要有这一层呢? 首先要抛开有操作系统的意识 ...
- rust实战系列 - 使用Iterator 迭代器实现斐波那契数列(Fibonacci )
为什么是斐波那契数列 斐波那契数列十分适合用来实战rust的迭代器,算法也很简单,一目了然.这个例子可以用来学习Iterator的使用,十分适合刚学习了rust的迭代器章节后用来练练手. 代码实战 d ...
- Python绘图工具turtle库的使用
#PythonDraw.py import turtle #引入了一个绘图库(海归库) turtle.setup(650,350,200,200) #设置一个窗体 turtle.penup() #将画 ...
- 简单说说ES6新特性
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了. 它的目标,是使得 JavaScript 语言可以用来编写复杂的大型 ...
- 解决tomcat同时部署两个SpringBoot应用报异常InstanceAlreadyExistsException
问题描述:Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.pool:name=primary ...
- java - HashMap原理及实现 (转)
众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry.这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干. HashMap ...
- 关于synchronized(this)中this指的是什么意思
public class SynchronizedDEmo { public static void main(String[] args) { TestThread tt = new TestThr ...
- AI模型运维——GPU性能监控NVML和DCGM
最近一年负责运维的GPU主机越来越多,发现现有的监控项无法很好的了解GPU的性能和负载情况,研究了下官方文档,在此记录. 一.NVML和DCGM NVML:https://developer.nvid ...
- Spark算子 - reduce
释义 reduce将partition内所有记录最终计算成1个记录,结果类型与reduce 时数据类型一致 方法签名如下: def reduce(f: (T, T) => T): T = wit ...