下边介绍Vector Layer

Path(Layer)

Path是其他Vector Layer的父类,比如Polyline、Polygon、Rectangle、Circle、CircleMarker...,虽然我们不直接用Path类,但是它的属性和方法我们需要了解。

1、参数

stroke     //是否画边界,默认True,在画Circle和Polygon时很有用
color //Stroke的color
weight //Stroke的线宽
opacity //Stroke透明度
dashArray //画图过程中虚线的样式
fill //是否填充内部,常用于Circle、Polygon
fillColor //颜色
fillOpacity//透明度
bubblingMouseEvents //默认true,当为true时,发生在该Path上的鼠标事件也将触发在Map上的相同事件

2、方法

setStyle(<Path options>style) //重设一些参数来让该Path表现为一些新样式
bringToFront() //把该Path Layer放在所有Path Layer之上
bringToBack() //把该Path Layer放在所有Path Layer之下

Polyline(Path)(Layer)

地图上的折线

1、用例

①从一组LatLng中创建一个折线

//从一组LatLng(所有LatLng对象都可以用数组[x,y]代替)中得到一条折线对象
var latlngs=[
[45,-122],
[37,-122],
[34,-118]
]; var polyline = L.polyline(latlngs,{color:'red'}).addTo(map); //缩放地图视角到该Polyline上
map.fitBounds(polyline.getBounds());

②从一组多维数组创建多条折线,一个多维数组代表一条折线,这多条折线实际上是一个polyline对象

var latlngs = [
[[45.51, -122.68],
[37.77, -122.43],
[34.04, -118.2]],
[[40.78, -73.91],
[41.83, -87.62],
[32.76, -96.72]]
];
var polyline=L.polyline(latlngs,{color:'red'}).addTo(leafletMap);
leafletMap.fitBounds(polyline.getBounds());

这个Array包含两个多维数组,绘制出来就是两条折线,每个多维数组对应一条折线。与用例①不同的是这两条折线的总体表示polyline。

2、实例化

L.polyline(<LatLng[]>latlngs,<Polyline options>options?)

3、参数

smoothFactor //光滑程度 默认1
noClip //禁用polyline clipping,默认false;暂未知功能如何

4、方法

getLatLngs() //返回LatLng[],一组点的数组,如果是多条折线则返回一个嵌套数组
setLatLngs(<LatLng[]>latlngs) //用给定的点替代原来的点绘制新线
closestLayerPoint(<Point>p) //返回Polyline中离点p最近的点
getCenter() //返回Polyline的中心坐标
getBounds()//返回该Polyline所在的Bound,配合Map的fitBounds方法可以定位到该Polyline
addLatLng(<LatLng>latlng,<LatLng[]>latlng?)//向Polyline中加入一个点

Polygon(Polyline)

多边形

通过一系列Points创建多边形,并不需要额外写一个和开始点相同的最终点。

1、用例

①创建一个红色的多边形

var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];

var polygon = L.polygon(latlngs , {color:'red'}).addTo(map);

map.fitBounds(polygon.getBounds())

②环形——两个Polygon之间的环形区域

需要两个Point数组,第一个表示外Polygon,第二个表示内Polygon

写法是:

var latlngs= [
[外Polygon 的Points Array],
[内Polygon 的Points Array]
];
var latlngs = [
[[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
[[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
];

③多多边形——MultiPolygon

和多折线一样,如果用多维数组表示,那么显示出来的是多个多边形,但是这多个多边形的整体是一个Polygon

写法:

var latlngs =[

[第一个多边形],

[第二个多边形]

];
        var latlngs = [
[ // first polygon
[[37, -109.05], [41, -109.03], [41, -102.05], [37, -102.04]], // outer ring
[[37.29, -108.58], [40.71, -108.58], [40.71, -102.50], [37.29, -102.50]] // hole
],
[ // second polygon
[[41, -111.03], [45, -111.04], [45, -104.05], [41, -104.05]]
]
];

2、初始化

L.polygon(<LatLng[]>latlngs, <Polyline options>options?)

3、参数

没有特有参数,参数继承自Polyline、Path、Layer

4、方法

没有特有方法,继承自Polyline、Path、Layer

Rectangle(Polygon)

1、用例

//定义一个Bounds 左上角和右下角的坐标
var bounds=[[54.559322, -5.767822], [56.1210604, -3.021240]]
//创建Rectangle
L.rectangle(bounds,{color:'#ff7800',weight:1}).addTo(map);
//将Map缩放到该Rectangle处
map.fitBounds(bounds);

2、初始化

L.rectangle(<LatLngBounds> latlngBounds, options?)

3、参数

同Polygon

4、方法

setBounds(<LatLngBounds>latlngBounds) //在设置的Bounds处重画该Rectangle

其他方法继承自Polygon

Circle(CircleMarker)

1、用例

L.circle([50.5,30.5],{radius:200}).addTo(map)

2、初始化

L.circle(<LatLng>latlng ,<Circle options>options) //可选参数options中必须要有参数radius,即半径

3、参数

radius //圆半径,单位m

其他参数继承自Path

4、方法

setRadius(n) //重设半径
getRadius() //返回半径
getBounds() //返回LatLngBounds

setRadius、setStyle、setLatLng对于Circle的修改结果会立刻显示在Map上而不需要redraw()。

其他方法继承自CircleMarker、Path、Layer

CircleMarker(Path)

一个始终与整个Map保持相对尺寸(以pixel为空单位)的Circle,区别于Circle就是Circle是绝对尺寸(以m为单位),当你放大地图时Circle会变小,因为它与地图的相对尺寸变小了;而CircleMarker不论你怎么缩放地图,它在地图都始终是那么大:

下图分别是同一个CircleMarker,但是地图的缩放等级是不同的。

1、初始化

L.circleMarker(<LatLng>latlng ,<CircleMarker options>options?)

2、参数

radius //半径,单位像素

3、方法

setLatLng(<LatLng>latlng) //布置该CircleMarker到新位置上
getLatLng()
setRadius(n)
getRadius()

还有继承自Path、Layer的方法

Leaflet:Path、Polyline、Polygon、Rectangle、Circle、CircleMarker的更多相关文章

  1. Leaflet:Event与Layer类属性、方法

    Event 之所以要说Event,是因为很多类都是继承自Layer--Marker.Popup.Tooltip.Path以及继承自Path的Circle.Polyline.Polygon...:而La ...

  2. Leaflet:LayerGroup、FeatureGroup

    LayerGroup(Layer) Layer 用法:把一些Layer集中到一个组Group中,以便作为一个整体进行操作.如果把该Group加入到了Map中,任何从这个Group增加或者移除Layer ...

  3. Node.js:path、url、querystring模块

    Path模块 该模块提供了对文件或目录路径处理的方法,使用require('path')引用. 1.获取文件路径最后部分basename 使用basename(path[,ext])方法来获取路径的最 ...

  4. python:PATH、PYTHONPATH 和 sys.path 的区别

    python:PATH.PYTHONPATH 和 sys.path 的区别 共同点 所有在它们的路径里面的 moduel 都可以被 import PATH 在 PATH 中的一些命令,例如 *.exe ...

  5. 环境变量配置的作用和区别:Path、Classpath、JAVA_HOME

    环境变量配置的作用和区别:Path.Classpath.JAVA_HOME 一个是零时配置,另一个是永久性配置. 零时配置的方法: 打开cmd窗口——>输入set命令,回车——>输入set ...

  6. Java NIO学习系列七:Path、Files、AsynchronousFileChannel

    相对于标准Java IO中通过File来指向文件和目录,Java NIO中提供了更丰富的类来支持对文件和目录的操作,不仅仅支持更多操作,还支持诸如异步读写等特性,本文我们就来学习一些Java NIO提 ...

  7. Leaflet:LatLng、LatLngBounds、Point、Bounds、Icon

    LatLng 代表一个有着确定经纬度坐标的地理点. 1.用例 var latlng = L.latlng(50.5,30.5); 所有Leaflet的方法中接收的LatLng参数均可以用数组[ ]或者 ...

  8. 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)

    webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...

  9. 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD

    发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...

随机推荐

  1. python31day

    内容回顾 网编总结,思维导图 计划 并发编程的开始,计划6天 操作系统1天 进程2天 线程2天 携程1天 今日内容 操作系统 多道操作系统: 从顺序的一个个执行的思路变成:并行轮流使用cpu 一个程序 ...

  2. 学习JAVAWEB第七天

    ## Bootstrap: 1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的 ...

  3. sqlserver查出来的数据丢失

    问题描述 今天利用sqlserver查数据,使用了一个ROUND(308.16000, 2)函数,发现在sqlserver工具中显示正常,但是在服务端查出来就会发生精度丢失问题. ROUND和CAST ...

  4. nginx103

    user  nobody;worker_processes  1;error_log  /home/logs/error.log  info;#pid        logs/nginx.pid;ev ...

  5. JS 获取JSON返回的时间值转换为通常格式展示

    var date = new Date(parseInt(数据源.slice(6)));   //获取到时间  年月日时分秒 var result = date.getFullYear() + '/' ...

  6. JSP页面 CTRL+F 功能实现

    .res { color: rgba(255, 0, 0, 1) } .result { background: rgba(255, 255, 0, 1) } --- js 部分 var oldKey ...

  7. linux_14

    简述CGI与FASTCGI区别 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构 通过loganalyzer展示数据库中的日志

  8. linux中可以查看端口占用的方法

    在自己搭建的服务器中,经常容易出现端口被占用的问题,那么怎么知道自己的端口是否被占用了呢? 可以使用下面的方法: linux中可以查看端口占用的方法. netstat -ant | grep 80 ( ...

  9. Solution -「洛谷 P6021」洪水

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的带点权树,删除 \(u\) 点的代价是该点点权 \(a_u\).\(m\) 次操作: 修改单点点权. ...

  10. Solution -「洛谷 P3911」最小公倍数之和

    \(\mathcal{Description}\)   Link.   给定 \(\{a_n\}\),求: \[\sum_{i=1}^n\sum_{j=1}^n\operatorname{lcm}(a ...