1.7.8 • Published 3 years ago

yleaflet v1.7.8

Weekly downloads
179
License
ISC
Repository
-
Last release
3 years ago

注意事项

  1. 请在页面中添加dom结构:<div id="g-yleaflet"><div id="map"></div></div>

  2. 请把 /public/yleaflet 文件夹拷贝到项目静态文件夹下;

  3. 请使用组件导出的leaflet,不要使用自行安装的leaflet;

  4. 请在项目 index.html 文件中,引入 <link rel="stylesheet" href="静态文件夹路径/yleaflet/fonts/fonts.css">

  5. 请在项目中引入 yleaflet/dist/main.min.css,修改了leaflet部分默认样式;

  6. 请先示例化地图图层:new YLeaflet(),然后使用其它图层;

  7. public/yleaflet/data文件夹下是模拟数据,如有需要可参考;

  8. src/examples 文件夹下有图层使用样例,如有需要可参考;

导出的图层

图层列表

export default YLeaflet;

export { L, BaseLayer, ContourLayer, VelocityLayer, SpotLayer, MarkerLayer, WindPlumeLayer, TyphoonLayer, DrawLayer };

类名图层名称说明
BaseLayer基础图层抽象类,所有图层的基类,提供地图相关的共用方法
YLeaflet地图用于初始化地图,已经绑定地图事件
ContourLayer等值线/面栅格数据为二维数组,离散点数据为json数组
VelocityLayer流场数据为u分量、v分量的二维数组
GridLayer色斑图数据是一维数组
MarkerLayer标记
WindPlumeLayer风杆数据为u分量或者速度的二维数组、v分量或者方向的二维数组
TyphoonLayer台风路径台风数据,请严格遵守约定格式
DrawLayer绘制可以绘制点、线、面、圆、多边形、态势图等
ScreenShot截图框选截图

BaseLayer

说明

  • 抽象类,所有图层的基类,提供地图相关的共用方法

属性

属性名类型说明
mapL.Map实例化的map
eventList事件基类实例化的事件对象

方法

方法名参数说明
init受保护的抽象方法,每一步操作的方法调用,尽量写在init里,逻辑清晰点
refreshMap地图重新渲染
lonLatToPointlon: number, lat: number经纬度转屏幕坐标
pointToLonLatx: number, y: number屏幕坐标转经纬度
calculateIndexByLonlatcurrent: number, start: number, delta: number计算当前经纬度在栅格中的位置,该方法有bug
getValueFromDataArrayyPos: number, xPos: number, xSize: number, data: (number | string)[根据位置从栅格数据获取值
isRenderByRangegridOptions: IGridOptions, width: number, height: number判断栅格数据的是否在目前地图的可视范围之内
removeLayer移除图层
show显示图层
hide隐藏图层

YLeaflet

说明

  • 用于初始化地图,new YLeaflet(options)

  • 已经绑定click dblclick preclick movestart move moveend zoomstart zoom zoomend unload等地图事件,通过 this.eventList.on('click', (evt: L.LeafletEvent) => void) 进行监听;可以绑定多个事件this.eventList.on('click move', (evt: L.LeafletEvent) => void)

参数

参数名类型默认值说明
containerIdstringg-yleaflet容器标签Id,地图标签是容器标签的子节点
mapIdstringmap地图标签的Id
center{ lon: number; lat: number }{ lat: 34.26, lon: 108.94 }地图的中心位置
zoomnumber10地图的缩放级别
zoomSnapnumber0.5地图的缩放系数
tileLayermapType[]"TianDiTu.Normal.Map", "TianDiTu.Normal.Annotion"要加载的底图
maxZoomnumber18地图 的最大缩放级别
minZoomnumber2地图 的最小缩放级别
zoomControlbooleanfalse是否显示地图自带的 +/- 缩放按纽
tdtLonlatbooleanfalse天地图是否使用等经纬度投影
annotionPane"tilePane"|"shadowPane"shadowPane各图层的pane为overlayerPane,annotionPane的值为shadowPane时,标注图层会覆盖在自定义图层的上面
type mapType =
  | "TianDiTu.Normal.Map"
  | "TianDiTu.Normal.Annotion"
  | "TianDiTu.Normal_Lonlat.Map"
  | "TianDiTu.Normal_Lonlat.Annotion"
  | "TianDiTu.Satellite.Map"
  | "TianDiTu.Satellite.Annotion"
  | "TianDiTu.Terrain.Map"
  | "TianDiTu.Terrain.Annotion"
  | "Geoq.Normal.Map"
  | "Geoq.Normal.PurplishBlue"
  | "Geoq.Normal.Gray"
  | "Geoq.Normal.Warm"
  | "GaoDe.Normal.Map"
  | "GaoDe.Satellite.Map"
  | "GaoDe.Satellite.Annotion"
  | "Google.Normal.Map"
  | "Google.Satellite.Map"
  | "Google.Satellite.Annotion"
  | "Baidu.Normal.Map"
  | "Baidu.Satellite.Map"
  | "Baidu.Satellite.Annotion"
  | "SuperMap.China";

方法

参数名参数说明
changeMaptileLayer: mapType[]用于切换地图底图
showClickMarker点击地图时,显示图标
removeClickMarker清除点击地图时的显示图标
destroyMap销毁地图实例

ContourLayer

说明

  • 用于绘制等值线/等值面,new ContourLayer(data, options)

  • 栅格数据为二维数组,从左下角开始,离散点数据为json数组

  • 默认参数如下
const defaultOptions = {
  scale: 1,
  lonLatAlias: ["lon", "lat"],
  isShowLabel: false,
  contourLineOption: {
    color: "green",
    weight: 1,
  },
  contourLabelOption: {
    font: "400 14px 微软雅黑",
    fillColor: "#000",
    strokeColor: "#fff",
  },
  undef: 999999,
}

参数

参数名类型默认值说明
renderType"surface" \| "line"必填surface:等值面, line: 等值线
dataType"grid" \| "point"必填grid: 栅格数据,不用插值, point: 离散点数据,要做插值处理
gridOptionsIGridOptions必填栅格参数,起始经纬度、步长等信息
analysisValuesnumber[]必填以该数值进行分析绘制
scalenumber1数据的缩放倍数,如果原始数据被乘以10,scale = 0.1
fieldstring离散点数据时,必填离散点数据时,取哪个字段的值
lonLatAliasstring"lon", "lat"离散点数据时,经纬度的别名
legendILegend[]渲染类型为等值面时的图例
clipDataGeoJSON.Polygon对图层进行裁剪Polygon数据
isShowLabelbooleanfalse是否显示分析值
labelMaxDistancenumberlabel显示的间隔
undefnumber999999无效数据
contourLineOptionIContourLineOption{color: "green",weight: 1}等值线的样式
contourLabelOptionILabelOption{ font: "400 14px 微软雅黑", fillColor: "#000", strokeColor: "#fff" }label的样式
type TData {
    (number \| string)[][] \| { [name: string]: number \| string }[]
}
interface ILegend {
  value: number | string;
  color: [number, number, number, number?];
}
interface IGridOptions {
  xDelta: number;
  xEnd: number;
  xSize: number;
  xStart: number;
  yDelta: number;
  yEnd: number;
  ySize: number;
  yStart: number;
}
interface IContourLineOption {
  color?: string;
  weight?: number;
}
interface ILabelOption {
  font?: string;
  fillColor?: string;
  strokeColor?: string;
}

方法

方法名参数说明
getImage返回图层图片,图片名为图层的范围
getContourGeoJSON返回等值线的geosjon
refreshdata?: TData, options?: IOptions用新数据或者参数重新渲染图层

VelocityLayer

说明

  • 用于绘制流场 new VelocityLayer(uArr, vArr, options)
  • 数据为u分量、v分量的二维数组,数据从左上角或者左下角开始都可以

参数

  • options参数
参数名类型是否必填说明
gridOptionsIGridOptions栅格参数,起始经纬度、步长等信息
legendILegend[]图例
velocityOptionsIVelocityOptions流场参数
  • 流场参数
参数名类型默认值说明
minVelocitynumber0粒子最小速度( m/s )
maxVelocitynumber10粒子最大速度( m/s )
velocityScalenumber0.01风速的比例 ( 粒子的小尾巴长度 )
lineWidthnumber1绘制粒子的线宽
colorScalestring[]"rgba(255, 255, 255 ,1)"粒子颜色
particleAgenumber90粒子在再生之前绘制的最大帧数
particleMultipliernumber1 / 300粒子计数标量( 粒子密度 )
frameRatenumber24每秒所需的帧数

方法

方法名参数说明
updateDatau: number[][], v: number[][], options?: IGridOptions用新数据更新图层
updateOptionsoptions: IVelocityOptions用新的流场参数更新图层

GridLayer

说明

  • 用于绘制色斑图,new GridLayer(data, options)
  • 数据是一维数组,从左下角开始或左上角开始都可以
  • 因为用到了webWorker,请给参数workerPath正确的路径

参数

参数名类型默认值说明
renderTypebitmap|pixel|value必填bitmap,栅格;pixel,渐变;value,填值
gridOptionsIGridOptions必填栅格参数,起始经纬度、步长等信息
legendILegend必填图例
workerPathstring/public项目静态文件路径
scalenumber1数据的缩放倍数,如果原始数据被乘以10,scale = 0.1
undefnumber999999无效数据的值
clipDataGeoJSON.Polygon对图层进行裁剪Polygon数据
isSinglebooleanfalse是否用单线程绘制
interface IGridOptions {
  xDelta: number;
  xEnd: number;
  xSize: number;
  xStart: number;
  yDelta: number;
  yEnd: number;
  ySize: number;
  yStart: number;
}
interface ILegend {
  value: number | string;
  color: [number, number, number, number?];
}

方法

方法名参数说明
refreshdata?:(number|string)[],options?:Partial<IOptions>用新数据或参数更新图层
removeLayer删除图层,清除worker

MarkerLayer

说明

  • 用于打点显示离散点数据,new MarkerLayer(data, options[], commonOptions)
  • 数据为json数组
  • commonOptions是通用参数,可选,参数属性同options

参数

参数名类型默认值说明
type"image" | "text" | "windPlume"必填绘制类型
fieldstring必填要绘制数据的字段名
clusterOptions{isCluster?: boolean;maxClusterRadius?:number}{isCluster: true, maxClusterRadius:40}聚合参数,是否聚合,以及聚合的半径
lonLatAliasstring[]"lon","lat"经纬度别名
valuenumber | string绘制类型为image时,要绘制字段的值,即字段值等于value,才去绘制
urlstring"bold 40px wind"绘制类型为image时,iconUrl
iconSize[number, number]24, 24icon的大小
iconAnchor[number, number]#000icon的偏移
backgroundstring#000绘制类型为text时,可以设置文本背景
colorstring#fff字体颜色
showPointbooleanfalse是否显示点
legendILegend[]绘制类型为text时的图例
suffixstring绘制类型为text时,文本前缀
prefixstring绘制类型为text时,文本后缀
popUp{ [name: string]:string[] }|string弹窗的内容
formatDataCallback(data: any) => any;数据格式化的回调
clickCallback(info: any, leafletEvent: L.LeafletEvent) => void;Marker点击的回调
filterDataCallback<T>(data: T[]) => T[];数据过滤的回调

WindPlumeLayer

说明

  • 用于绘制风杆, new WindPlumeLayer(uOrSdata, vOrDdata, options)
  • 数据为u分量或者速度的二维数组、v分量或者方向的二维数组

参数

参数名类型默认值说明
dataType"uv" | "sd"必填数据类型是 uv 或者 风速风向
gridOptionsIGridOptions必填栅格参数,起始经纬度、步长等信息
clipDataGeoJSON.Polygon对图层进行裁剪Polygon数据
scalenumber1数据的缩放倍数,如果原始数据被乘以10,scale = 0.1
spacingnumber30风杆的间距,单位为像素
fontstring"bold 40px wind"风杆样式
legendILegend风杆的颜色,根据风速的图例计算
fillColorstring#000给风杆一个统一的颜色,如果有legend数据,legend优先
showValue(“ws“|“wd“)[][]是否打点显示风速风向数值

方法

方法名参数说明
refreshuOrSdata?:vOrDdata[]][],vOrDdata?: number[][],options?:Partial<IWindPlumeOptions>用新数据或参数更新图层

ScreenShot

说明

  • 框选截图,new ScreenShot(domId)

  • 继承自 DrawLayer 图层

参数

参数名类型参数默认值说明
domIdstring用新数据或参数更新图层会截取该domId节点下的元素

方法

方法名参数说明
start用新数据或参数更新图层
end结束截图,返回一个Promise,参数为DataURL
ScreenShotByDomAndPixelRange静态方法不会开启框选。通过参数进行截图

1.7.8

3 years ago

1.7.6

3 years ago

1.7.5

3 years ago

1.7.4

3 years ago

1.7.3

3 years ago

1.7.2

3 years ago

1.7.1

3 years ago

1.6.15

3 years ago

1.6.17

3 years ago

1.6.16

3 years ago

1.7.0

3 years ago

1.6.13

3 years ago

1.6.14

3 years ago

1.6.12

3 years ago

1.6.11

3 years ago

1.6.10

3 years ago

1.6.9

3 years ago

1.6.8

3 years ago

1.6.7

3 years ago

1.6.4

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.5

3 years ago

1.6.0

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.9

3 years ago

1.4.6

3 years ago

1.4.5

3 years ago

1.4.4

3 years ago

1.4.8

3 years ago

1.4.7

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.9

3 years ago

1.3.8

3 years ago

1.3.7

3 years ago

1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.1

3 years ago

1.2.5

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.19

3 years ago

1.1.18

3 years ago

1.1.17

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.14

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.1

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.0.16

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago