LatLng

代表一个有着确定经纬度坐标的地理点。

1、用例

  1. var latlng = L.latlng(50.5,30.5);

所有Leaflet的方法中接收的LatLng参数均可以用数组[ ]或者一个表示经纬度的Key/Value表示:

  1. map.panTo( [50,30] );
  2. map.panTo( {lon : 30 , lat : 50});
  3. map.panTo( {lat : 50 , lon : 30});
  4. map.panTo( L.latLng( 50 ,30 ));

2、初始化

  1. L.latLng( lat , lon , <Number>altitude?)//在(lat lon)处创建一个地理点,第三个参数表示高度
  2. L.latLng( [ lat , lon , alt?] )
  3. L.latLng( { latitude : lat , longitude : lon , alt : n?})

注意第一个字母小写,第二个L才大写

3、方法

  1. equals( <LatLng>otherlatlng , <Number>maxMargin?)//第二个参数表示误差值,如果给定点与原坐标之间的经纬度差值在误差值内,就返回true
  2. toString() //返回LatLng的String写法,类似LatLng(lat,lng)这样
  3. distanceTo(<LatLng>otherLatLng)//计算两点间的距离(单位m)
  4. wrap() //返回新的LatLng对象,它的经度longitude与原点经度刚好相反(区间是-180~180)
  5. toBounds(<Number>sizeInMeters)//返回LatLngBounds,边长单位m,长度是LatLon点坐标值的一半

LatLngBounds

代表地图上的一个矩形地理区域

1、用例

  1. var corner1=L.latLng(41.712,-74.227),
  2. corner2=L.latLng(40.774-74.125),
  3. bounds=L.latLngBounds(corner1,corner2);

所有接受LatLngBounds作为参数的方法,均可以用一个包含两个LatLng的Array[ ]作为代替,比如:

  1. map.fitBounds(bounds)
  2.  
  3. //等同于
  4.  
  5. map.fitBounds([corner1 , corner2])
  6.  
  7. //等同于
  8.  
  9. map.fitBounds([ [40.712, -74.227] , [40.774, -74.125] ]);

2、初始化

  1. L.latLngBounds( <LatLng>corner1 , <LatLng>corner2 )
  2. L.latLngBounds( <LatLng[]> latlngs )

第二种方法在用于map.fitBounds()作为参数时会很有用。

3、方法

  1. extend(<LatLng> latlng) //延伸该Bounds到可以包含给定点
  2. extend( <LatLngBounds> otherBounds) //延伸到包含给定Bounds
  3. pad( <Number> bufferRation ) //根据参数值决定延伸还是收缩该Bounds。0.5表示各个方向上延伸50%,负数表示收缩
  4. getCenter() //返回LatLng;返回中心点
  5. getSouthWest()
  6. getNorthEast()
  7. getNorthWest()
  8. getSouthEast()
  9. getWest() //返回最西边的经度值
  10. getSouth()
  11. getEast()
  12. getWest()
  13. contains(<LatLngBounds>otherBounds) //是否包含给定的Bounds区域
  14. contains(<LatLng> latlng) //是否包含给定点
  15. intersects(<LatLngBounds> otherBounds) //是否与给定区域相交
  16. overlaps(<LatLngBounds> otherBounds) //是否与给定区域部分重叠(区别于相交是,相交可以是点,而重叠的部分一定是一个Bounds)
  17. toBBoxString() //返回构成该Bounds的右下和左上角点的坐标的String形式
  18. equals(<LatLngBounds>otherBounds,<Number>maxMargin?)//是否在经纬度误差为maxMargin的前提下,两块Bounds的范围相同?

Point

代表一个点(x,y),区别于LatLng是Point的坐标是以像素为单位,而LatLng的单位是°;或者说,Point是绝对于Web的,不管你Map怎么变,该Point都始终在Web页面的那个位置处;而LatLng则是绝对于Map的,它在地图上的坐标就是LatLng。

常用于地图平移的参数。

1、用例

  1. var point = L.point(200 , 300);

所有Leaflet的方法中接收Point类型作为参数的,均可以接收一个[ x , y ]作为替代。

2、初始化

  1. L.point( x , y , <Boolean> round? ) //round表示是否进行四舍五入
  2. L.point([ x , y ])
  3. L.point( { x:Number , y:Number } )

3、方法

  1. clone() //返回当前点的副本
  2. add(<Point> otherPoint) //返回两个点坐标的加和
  3. subtract(otherPoint) //返回两个点的差
  4. divideBy(n) //返回除以n后的坐标
  5. multiplyBy(n) //返回乘n后的坐标
  6. scaleBy( <Point>scale ) //两个点的对应坐标相乘得到新点
  7. unscaleBy( scale ) //原点两坐标除以scale的坐标得到新点
  8. round() //返回一个四舍五入后的点坐标的副本
  9. floor() //向下取整
  10. ceil() //向上取整
  11. trunc() //向0取整
  12. distanceTo(otherPoint) //返回两点间的笛卡尔距离
  13. equals(otherPoint) //如果两点坐标相同,返回true
  14. contains(otherPoint) //如果otherPoint的每个坐标绝对值都小于原点,则返回true
  15. toString()

Bounds

一个矩形区域,长度单位是像素。与Point的关系就像是LatLngBounds与LatLng的关系。

1、用例

  1. var p1=L.point(10,10),
  2. p2=L.point(40,60),
  3. bounds=L.bounds( p1 , p2 )

所有Leaflet方法中接收Bounds作为参数的,都可以将参数替换为Array [ point1 , point2 ]的形式。

2、初始化

  1. L.bounds(<Point>corner1 , <Point>corner2)
  2. L.bounds( [ corner1 , corner2 ])

3、方法

其实方法与LatLngBounds的方法类似,但是由于名字不太一样,所以这里还是写出来:

  1. extend(<Point> point) //延伸该bounds到可以包含给定点
  2. getCenter(<Boolean> round?)//取中心点,round表示是否四舍五入
  3. getBottomLeft() //返回左下角的Point
  4. getTopRight()
  5. getTopLeft()
  6. getBottomRight()
  7. getSize() //返回一个Point,表示该Bounds的长和宽
  8. contains(<Bounds>otherBounds) //如果包含给定Bounds就返回true
  9. contains(<Point> point) //如果包含给定point就返回true
  10. intersects(<Bounds>otherBounds) //如果两个Bounds相交,就返回true
  11. overlaps(<Bounds>otherBounds) //如果两个Bounds有重叠区域,就返回true

4、属性,Properties

  1. min //类型Point,左上角的点
  2. max //右下角的点

Icon

Icon就是Marker的图标

1、用例

  1. var myIcon=L.icon({
  2. iconUrl:'my-icon.png',
  3. iconSize:[38,95],
  4. iconAnchor:[22,94],
  5. popupAnchor:[-3,-76],
  6. shadowUrl:'my-icon-shadow.png',
  7. shadowSize:[68,95],
  8. shadowAnchor:[22,94]
  9. });
  10.  
  11. L.marker( [50.505 , 30.57],{icon: myIcon}).addTo(map);

默认的Icon是一个蓝色的Icon(就是我们默认设置Marker的样式)。

2、初始化

  1. L.icon(<Icon options>options)

3、参数

  1. iconUrl //Icon图的URL,绝对地址或者相对于根目录的地址
  2. iconRetinaUrl //手机屏中的icon的URL
  3. iconSize //类型Point,表示icon的尺寸(单位Pixel)
  4. iconAnchor //类型Point,Icon图标左上角的坐标(以实际点的坐标为(0,0),相对于实际点的pixel坐标)
  5. popupAnchor //Popup的坐标
  6. shadowUrl //Icon 阴影的URL
  7. shadowSize
  8. shadowAnchor
  9. className //给Icon和shadow图的类命名

5、Icon.Default

如果想自制默认icon,就修改L.Marker.prototype.options

Leaflet:LatLng、LatLngBounds、Point、Bounds、Icon的更多相关文章

  1. Leaflet:Path、Polyline、Polygon、Rectangle、Circle、CircleMarker

    下边介绍Vector Layer Path(Layer) Path是其他Vector Layer的父类,比如Polyline.Polygon.Rectangle.Circle.CircleMarker ...

  2. Leaflet:Marker、Popup类

    Marker.Popup.Tooltip类都是继承自Layer类:Event与Layer Marker 1.用例 L.marker([41,123]).addTo(map); 2.实例化 L.mark ...

  3. Leaflet:LayerGroup、FeatureGroup

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

  4. 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. ...

  5. 教你一招:解决win10/win8.1系统在安装、卸载软件时出现2502、2503错误代码的问题

    经常遇到win10/win8.1系统在安装.卸载软件时出现2502.2503错误代码的问题. 解决办法: 1.打开任务管理器后,切换到“详细信息”选项卡,找到explore.exe这个进程,然后结束进 ...

  6. TFS API:三、TFS WorkItem添加和修改、保存

    TFS API:三.TFS  WorkItem添加和修改.保存 WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1 ...

  7. C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

    类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...

  8. 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词

    转载: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级 ...

  9. Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask

    CyclicBarrier 接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier.CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到 ...

随机推荐

  1. strace -cp 诊断

    strace -c php do.php 各项含义如下: - % time:执行耗时占总时间百分比 - seconds:执行总时间 - usecs/call:单个命令执行时间 - calls:调用次数 ...

  2. 裸k8s搭建中遇到的两个坑

    在装docker的时候报错了,需要先安装selinux版本.才能安装容器. 需要按照提示安装这个包. 采用强制安装.rpm -ivh 包名字 --force --nodeps 在k8s的master上 ...

  3. Pytest单元测试框架生成HTML测试报告及优化

    一.安装插件 要生成html类型的报告,需要使用pytest-html插件,可以在IDE中安装,也可以在命令行中安装.插件安装 的位置涉及到不同项目的使用,这里不再详述,想了解的可自行查询. IDE中 ...

  4. React之常用技术栈

     · react-redux:https://www.cnblogs.com/jingxuan-li/p/12439181.html  · react-router-dom:https://www.c ...

  5. 寻找写代码感觉(十六)之 集成Validation做参数校验

    写在前面 今天是大年初五了... 不知不觉,又要上班了,美好的假期只剩一天了,有点不舍呢! 也不知道为什么,总感觉像在做梦一样,像没睡醒一样,并不是因为眼睛小,更多应该是自寻烦恼,想得多罢了. 参数校 ...

  6. CEH v8~v11 Module Slides 和 Lab Manual 下载

    课程内容 CEH v8 01 Introduction to Ethical Hacking CEH v8 02 Footprinting and Reconnaissance CEH v8 03 S ...

  7. Ajax创建对象的方法

    ajax涉及的技术包括Html.css.dom.xml.javascript等. 主流创建ajax对象的方法: IE6以下版本浏览器创建ajax对象方法是: 定义一个方法创建ajax对象:

  8. Java 中使用正则表达式校检IP是否输入正确

    感谢大佬案例:https://www.jb51.net/article/114671.htm 正则表达式学习:(待办)近期总结

  9. VC 窗口置顶并激活为当前窗体

    转载请注明来源:https://www.cnblogs.com/hookjc/ if (this != GetForegroundWindow())                           ...

  10. mysql导出csv格式命令

    mysql -h 127.0.0.1 -u user -p123456 -Bse "select name,age from user where age > 10;" | ...