Leaflet:LatLng、LatLngBounds、Point、Bounds、Icon
LatLng
代表一个有着确定经纬度坐标的地理点。
1、用例
var latlng = L.latlng(50.5,30.5);
所有Leaflet的方法中接收的LatLng参数均可以用数组[ ]或者一个表示经纬度的Key/Value表示:
map.panTo( [50,30] );
map.panTo( {lon : 30 , lat : 50});
map.panTo( {lat : 50 , lon : 30});
map.panTo( L.latLng( 50 ,30 ));
2、初始化
L.latLng( lat , lon , <Number>altitude?)//在(lat lon)处创建一个地理点,第三个参数表示高度
L.latLng( [ lat , lon , alt?] )
L.latLng( { latitude : lat , longitude : lon , alt : n?})
注意第一个字母小写,第二个L才大写
3、方法
equals( <LatLng>otherlatlng , <Number>maxMargin?)//第二个参数表示误差值,如果给定点与原坐标之间的经纬度差值在误差值内,就返回true
toString() //返回LatLng的String写法,类似LatLng(lat,lng)这样
distanceTo(<LatLng>otherLatLng)//计算两点间的距离(单位m)
wrap() //返回新的LatLng对象,它的经度longitude与原点经度刚好相反(区间是-180~180)
toBounds(<Number>sizeInMeters)//返回LatLngBounds,边长单位m,长度是LatLon点坐标值的一半
LatLngBounds
代表地图上的一个矩形地理区域
1、用例
var corner1=L.latLng(41.712,-74.227),
corner2=L.latLng(40.774-74.125),
bounds=L.latLngBounds(corner1,corner2);
所有接受LatLngBounds作为参数的方法,均可以用一个包含两个LatLng的Array[ ]作为代替,比如:
map.fitBounds(bounds) //等同于 map.fitBounds([corner1 , corner2]) //等同于 map.fitBounds([ [40.712, -74.227] , [40.774, -74.125] ]);
2、初始化
L.latLngBounds( <LatLng>corner1 , <LatLng>corner2 )
L.latLngBounds( <LatLng[]> latlngs )
第二种方法在用于map.fitBounds()作为参数时会很有用。
3、方法
extend(<LatLng> latlng) //延伸该Bounds到可以包含给定点
extend( <LatLngBounds> otherBounds) //延伸到包含给定Bounds
pad( <Number> bufferRation ) //根据参数值决定延伸还是收缩该Bounds。0.5表示各个方向上延伸50%,负数表示收缩
getCenter() //返回LatLng;返回中心点
getSouthWest()
getNorthEast()
getNorthWest()
getSouthEast()
getWest() //返回最西边的经度值
getSouth()
getEast()
getWest()
contains(<LatLngBounds>otherBounds) //是否包含给定的Bounds区域
contains(<LatLng> latlng) //是否包含给定点
intersects(<LatLngBounds> otherBounds) //是否与给定区域相交
overlaps(<LatLngBounds> otherBounds) //是否与给定区域部分重叠(区别于相交是,相交可以是点,而重叠的部分一定是一个Bounds)
toBBoxString() //返回构成该Bounds的右下和左上角点的坐标的String形式
equals(<LatLngBounds>otherBounds,<Number>maxMargin?)//是否在经纬度误差为maxMargin的前提下,两块Bounds的范围相同?
Point
代表一个点(x,y),区别于LatLng是Point的坐标是以像素为单位,而LatLng的单位是°;或者说,Point是绝对于Web的,不管你Map怎么变,该Point都始终在Web页面的那个位置处;而LatLng则是绝对于Map的,它在地图上的坐标就是LatLng。
常用于地图平移的参数。
1、用例
var point = L.point(200 , 300);
所有Leaflet的方法中接收Point类型作为参数的,均可以接收一个[ x , y ]作为替代。
2、初始化
L.point( x , y , <Boolean> round? ) //round表示是否进行四舍五入
L.point([ x , y ])
L.point( { x:Number , y:Number } )
3、方法
clone() //返回当前点的副本
add(<Point> otherPoint) //返回两个点坐标的加和
subtract(otherPoint) //返回两个点的差
divideBy(n) //返回除以n后的坐标
multiplyBy(n) //返回乘n后的坐标
scaleBy( <Point>scale ) //两个点的对应坐标相乘得到新点
unscaleBy( scale ) //原点两坐标除以scale的坐标得到新点
round() //返回一个四舍五入后的点坐标的副本
floor() //向下取整
ceil() //向上取整
trunc() //向0取整
distanceTo(otherPoint) //返回两点间的笛卡尔距离
equals(otherPoint) //如果两点坐标相同,返回true
contains(otherPoint) //如果otherPoint的每个坐标绝对值都小于原点,则返回true
toString()
Bounds
一个矩形区域,长度单位是像素。与Point的关系就像是LatLngBounds与LatLng的关系。
1、用例
var p1=L.point(10,10),
p2=L.point(40,60),
bounds=L.bounds( p1 , p2 )
所有Leaflet方法中接收Bounds作为参数的,都可以将参数替换为Array [ point1 , point2 ]的形式。
2、初始化
L.bounds(<Point>corner1 , <Point>corner2)
L.bounds( [ corner1 , corner2 ])
3、方法
其实方法与LatLngBounds的方法类似,但是由于名字不太一样,所以这里还是写出来:
extend(<Point> point) //延伸该bounds到可以包含给定点
getCenter(<Boolean> round?)//取中心点,round表示是否四舍五入
getBottomLeft() //返回左下角的Point
getTopRight()
getTopLeft()
getBottomRight()
getSize() //返回一个Point,表示该Bounds的长和宽
contains(<Bounds>otherBounds) //如果包含给定Bounds就返回true
contains(<Point> point) //如果包含给定point就返回true
intersects(<Bounds>otherBounds) //如果两个Bounds相交,就返回true
overlaps(<Bounds>otherBounds) //如果两个Bounds有重叠区域,就返回true
4、属性,Properties
min //类型Point,左上角的点
max //右下角的点
Icon
Icon就是Marker的图标
1、用例
var myIcon=L.icon({
iconUrl:'my-icon.png',
iconSize:[38,95],
iconAnchor:[22,94],
popupAnchor:[-3,-76],
shadowUrl:'my-icon-shadow.png',
shadowSize:[68,95],
shadowAnchor:[22,94]
});
L.marker( [50.505 , 30.57],{icon: myIcon}).addTo(map);
默认的Icon是一个蓝色的Icon(就是我们默认设置Marker的样式)。
2、初始化
L.icon(<Icon options>options)
3、参数
iconUrl //Icon图的URL,绝对地址或者相对于根目录的地址
iconRetinaUrl //手机屏中的icon的URL
iconSize //类型Point,表示icon的尺寸(单位Pixel)
iconAnchor //类型Point,Icon图标左上角的坐标(以实际点的坐标为(0,0),相对于实际点的pixel坐标)
popupAnchor //Popup的坐标
shadowUrl //Icon 阴影的URL
shadowSize
shadowAnchor
className //给Icon和shadow图的类命名
5、Icon.Default
如果想自制默认icon,就修改L.Marker.prototype.options
Leaflet:LatLng、LatLngBounds、Point、Bounds、Icon的更多相关文章
- Leaflet:Path、Polyline、Polygon、Rectangle、Circle、CircleMarker
下边介绍Vector Layer Path(Layer) Path是其他Vector Layer的父类,比如Polyline.Polygon.Rectangle.Circle.CircleMarker ...
- Leaflet:Marker、Popup类
Marker.Popup.Tooltip类都是继承自Layer类:Event与Layer Marker 1.用例 L.marker([41,123]).addTo(map); 2.实例化 L.mark ...
- Leaflet:LayerGroup、FeatureGroup
LayerGroup(Layer) Layer 用法:把一些Layer集中到一个组Group中,以便作为一个整体进行操作.如果把该Group加入到了Map中,任何从这个Group增加或者移除Layer ...
- C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。
一.Hadoop环境配置概述 三台虚拟机,操作系统为:Ubuntu 16.04. Hadoop版本:2.7.2 NameNode:192.168.72.132 DataNode:192.168.72. ...
- 教你一招:解决win10/win8.1系统在安装、卸载软件时出现2502、2503错误代码的问题
经常遇到win10/win8.1系统在安装.卸载软件时出现2502.2503错误代码的问题. 解决办法: 1.打开任务管理器后,切换到“详细信息”选项卡,找到explore.exe这个进程,然后结束进 ...
- TFS API:三、TFS WorkItem添加和修改、保存
TFS API:三.TFS WorkItem添加和修改.保存 WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1 ...
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
类型判断符号: C#:object a; if(a is int) { } 用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...
- 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
转载: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级 ...
- Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
CyclicBarrier 接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier.CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到 ...
随机推荐
- JVM调优方法
目 录 目 录 I 诠释JVM调优 1 第1章 JVM内存模型及垃圾收集算法 1 1.1 根据Java虚拟机规范,JVM将内存划分为 1 1.2 垃圾回收算法 1 第2章 内存泄漏及解决方法 2 2. ...
- 推荐召回--基于内容的召回:Content Based
目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...
- deque概述
1.简介 双端队列deque,与vector的最大差异在于: 一.deque运行常数时间对头端或尾端进行元素的插入和删除操作. 二.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随 ...
- Ubuntu18.04 显卡驱动安装(解决各种疑难杂症)
步骤 下载驱动 准备工作 进行安装 检查安装 下载驱动 首先我们需要去官网下载显卡驱动 打开浏览器,在百度搜索框中搜索:显卡驱动 下载 在手动搜索驱动程序一栏,根据自己的显卡进行选择 产品系列中,No ...
- js文件中三斜杠注释///reference path的用途
编辑某个js文件时,要想这个js文件出现其他js成员的ide提示,可以在js文件开头使用3个斜杠注释和reference指令的path指向此js文件路径,这样在编写这个js文件时,ide就会自动出现p ...
- Base64补充
1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字 ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围:http: ...
- java命令-(学习)jstack 工具
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...
- 将一个读取流转换成bitmap对象
将一个读取流转换成bitmap对象: BitmapFactory:可以将文件,读取流,字节数组转换成一个Bitmap对象. Bitmap bitmap = Bitma ...
- webpack打包如何统一js和css中图片资源路径
目前项目应用的是vue-cli,自行修改了部分配置.三个环境的情况跟你差不多,测试/生产环境的层级比你还深. 先说下修改了哪些配置 1-build/utils.js下的cssLoaders内的gene ...