类参考

# 概述

GEOWAYWeb端Leafelt SDK在开源的Leaflet 1.0基础上,扩展了矢量瓦片相关能力。 本章节主要对矢量瓦片web端SDK接口进行相关说明。 Leaflet官方API链接:https://leafletjs.com/ (opens new window)

# 接口列表

SDK主要提供的接口如表所示:

名称 描述 继承自
L.GXYZ 后端绘制矢量瓦片底图图层 Leaflet的L.TileLayer
L.GVMapGrid 前端绘制矢量瓦片底图图层 Leaflet的L.TileLayer
L.GLabelGrid 后端注记避让前端绘制注记图层 Leaflet的L.Layer
L.GWVTAnno 前端注记避让前端绘制注记图层 Leaflet的L.Layer
L.CRS.CustomEPSG4326 支持经纬度投影从1级开始请求 Leaflet的L.CRS.Earth
Custom.DataSource 数据源基类
Custom.URLDataSource 远程数据源 Custom.DataSource
Custom.LocalDataSource 本地数据源 Custom.DataSource
Custom.Feature 本地要素
Custom.Filter 过滤 同移动端
Custom.FilterLayer 图层过滤 同移动端

矢量瓦片Web端leaflet SDK是基于leaflet 1.0以上扩展开发而来,本章节主要对矢量瓦片web端SDK接口进行相关说明。


# L.GXYZ

描述:栅格瓦片底图图层 。继承自Leaflet的L.TileLayer, 它的扩展方法如下:

名称 参数 返回值 含义
initialize(url, options) String,Json 构造函数
setFilter(filter) Custom.FilterLayer 给底图数据设置过滤条件
getFeatureByXY(x,y,callback) int,int,function JSON 根据屏幕坐标拾取要素
getFeatureByLonlat(latLng,callback) L.latLng,function JSON 根据地理坐标拾取要素
highlightFeatures(layerFeatures,style) 拾取返回的Json对象,样式json对象如:{color:"red",opacity:0.8} 高亮拾取到的要素
highlightByFilter(filter) Custom.FilterLayer 根据过滤条件高亮要素
cancelHighlight() 取消高亮

它的扩展属性如下:

属性名 类型 默认值 含义
urlArray Array [] 支持多个域名 , 如:[http://t0.tianditu.gov.cn,http://t1.tianditu.gov.cn] (opens new window)

# L.GVMapGrid

描述:前端绘制矢量瓦片底图图层。继承自Leaflet的L.TileLayer, 它的扩展方法如下:

名称 参数 返回值 含义
initialize(url, options) String,Json 构造函数
setFilter(filter) Custom.FilterLayer 给底图数据设置过滤条件
getFeatureByXY(x,y,callback) int,int,function JSON 根据屏幕坐标拾取要素
getFeatureByLonlat(latLng,callback) L.latLng,function JSON 根据地理坐标拾取要素
highlightFeatures(layerFeatures,style) 拾取返回的Json对象,样式json对象如:{color:"red",opacity:0.8} 高亮拾取到的要素
highlightByFilter(filter) Custom.FilterLayer 根据过滤条件高亮要素
cancelHighlight() 取消高亮

它的扩展属性如下:

属性名 类型 默认值 含义
urlArray Array [] 支持多个域名 , 如:[http://t0.tianditu.gov.cn,http://t1.tianditu.gov.cn] (opens new window)

# L.GWVTAnno

描述:前端注记避让前端绘制注记图层。继承自Leaflet的L.Layer图层,它的扩展方法如下:

名称 参数 返回值 含义
initialize(url, options) String,Json 构造函数
addDataSource(dataSource) Custom.DataSource 给注记图层增加数据源,没有数据源将无法显示
removeDataSourceById(dataSourceId) string 通过dataSourceId移除数据源
redraw() 重新绘制当前图层
getFeatureByXY() Custom.Feature 根据屏幕坐标获取要素
setOpacity(opacity) Number 0-1之间的小数 给注记图层设置透明度
addToMap(map) L.Map 将注记图层加入到Map中
setHasImportant(b) boolean 是否支持isImportant属性,默认为true

它的扩展属性如下:

属性名 类型 默认值 含义
hitDetection boolean true 注记是否允许被拾取,为false时,能提升绘制性能

# L.GLabelGrid

描述:后端注记避让前端绘制注记图层。继承自Leaflet的L.Layer图层,它的扩展方法如下:

名称 参数 返回值 含义
setFilter(filter) Custom.FilterLayer 给注记数据设置过滤条件
getFeatureByXY(x,y) int,int Custom.Feature 根据屏幕坐标获取要素

它的扩展属性如下:

属性名 类型 默认值 含义
hitDetection boolean true 注记是否允许被拾取,为false时,能提升绘制性能
urlArray Array [] 支持多个域名 , 如:[http://t0.tianditu.gov.cn,http://t1.tianditu.gov.cn] (opens new window)

# L.CRS.CustomEPSG4326

描述:后端注记避让前端绘制注记图层。继承自Leaflet的L.CRS.Earth图层,它的扩展方法如下:

名称 参数 返回值 含义
scale(zoom) Number 重写父类的方法,支持缩放级别从第1级开始,父类是从第0级开始

# Custom.DataSource

描述:数据源基类,具体属性如下:

名称 是否必须 默认值 类型 含义
id 随机uuid String 数据源id,移除,查找数据源时,需要通过id来进行操作

# Custom.URLDataSource

描述:继承Custom.DataSource. 它是请求url远程的数据源,属性如下:

属性名 是否必须 默认值 类型 含义
url null String 请求注记数据的url接口
urlArray [] Array 支持多个域名 , 如:[http://t0.tianditu.gov.cn,http://t1.tianditu.gov.cn] (opens new window)

方法如下:

方法名 参数 返回值 含义
setFilter(filter) Custom.FilterLayer 给数据源设置过滤条件

# Custom.LocalDataSource

描述:继承Custom.DataSource。 它的扩展方法如下:

方法名 参数 返回值 含义
addFeature(feature) Custom.Feature 添加Feature对象
removeFeatureById(featureId) String 通过featureId移除Feature
addTextureUrl(name,url) 1、name是注记图标的名称 2、url为注记图标的url地址 添加图标纹理

# Custom.Feature

描述:表示本地要素,具体属性如下:

属性名 是否必须 默认值 类型 含义
id 自动生成uid String Feature的id
type 0 Int 1代表点,2代表线.。(没有面注记)
sourceData [] array 地理坐标数组。 如:[120,30,121,31]
style key-value的object对象 单个注记要素的样式。如:feature.style = {show:true,labelfield:'name', avoidField:'avoidWeight',avoidWeight:0, chinaLabelWidth:16, otherLabelWidth:16,gap:3,angle:30,pointHashOutline:true,pointHashBackground:false, graphicYOffset:-7,graphicXOffset:-7,graphicHeight:14, graphicDistance:0, pointFillStyle:'#ff00ff', pointFillFont:'12px Arial',pointFillAlpha:1, pointLineWidth:2,pointStrokeStyle:'#ffffff', pointStrokeFont:'12px Arial',pointStrokeAlpha:1,pointHeight:12,pointBackgroundColor:'#ff0000', pointBackgroundAlpha:1,pointBackgroundLineWidth:1,pointBackgroundLineColor:'#ff0000', pointBackgroundRadius:3,pointBackgroundGap:0,texture:'150101.png'};

本地要素Custom.Feature方法:

方法名 参数 返回值 含义
addAttribute(key,value) key为String,value为object 给Feature增加属性数据如:feature.addAttribute('name','本地测试数据2')
removeAttributeByKey(key) String 通过属性名移除属性feature.removeAttributeByKe('name')

# Custom.Filter

Custom.Filter属性:

属性名 是否必须 默认值 类型 含义
otherDisplay true boolean 除本类中layers,其他图层的显隐

Custom.Filter方法:

方法名 参数 返回值 含义
addFilterLayer(filterLayer) Custom.FilterLayer 添加图层过滤条件
removeFilterLayerById(filterLayerId) String 通过图层id移除过滤条件

# Custom.FilterLayer

Custom.FilterLayer属性如下:

属性名 是否必须 默认值 类型 含义
id null String 图层的名称
idFilter null String 要过滤要素的主键id。 默认为null时,不通过该值过滤
filterStr null String 过滤条件Json格式,如果同时也有filters,会优先使用filterStr
color null Object 高亮对象,默认为null时,使用配图的默认样式。 示例:{"color":"%23f00fff","opacity":0.9}, 其中颜色值必须用%23开头
display true boolean 该过滤图层中的要素是否保留显示

Custom.FilterLayer方法

方法名 参数 返回值 含义
addFilterField(key,value) key的值参考“条件表达式柜则.xlsx”文档中的条件表达式。Value为obejct类型 添加过滤字段
removeFilterField(key) key的值参考“条件表达式柜则.xlsx”文档中的条件表达式。 通过过滤条件key移除过滤字段

# 附1-注记样式属性列表

描述:样式注记主要是对于地图注记样式的定义,例如注记的字体、颜色、大小、符号、权重等等,具体属性如下表所示:

属性名 是否必须 默认值 类型 含义
show true boolean 注记是否显示
labelfield name String 注记显示的文字,对应的属性字段
avoidField avoidWeight String 避让权重字段,如果数据中有权重字段,请指定权重字段
avoidWeight 0 Int 如果数据中没有权重字段,请在这设置权重
chinaLabelWidth 16 int 单位像素,线注记的文字宽度
gap 3 int 单位像素,线注记字间距
angle 30 Int 单位 度。线状注记中任意两个字之间,旋转角度差多少度时不显示
pointHashOutline true boolean 点注记,文字是否有描边
pointHashBackground false boolean 点注记是否有底部面填充
texture “” String 点注记图标的id
graphicYOffset -7 Int 单位像素,点图片往下偏移的距离
graphicXOffset -7 Int 单位像素,点图片往右偏移的距离
graphicHeight 14 Int 单位像素,图片制作时,需让图片的宽度和高度相等
graphicDistance 3 Int 点图片与点注记的距离
isFourDirections False Boolean 点注记是否开启四宫格避让
pointFillStyle #000000 16进制颜色值 点注记文字的颜色
pointFillFont 12px Arial String 点注记的字体大小,字体类型
pointFillAlpha 1 Number 点注记的文字透明度
pointLineWidth 2 Int 点注记文字的线宽度
pointStrokeStyle # ffffff 16进制颜色值 点注记描边的颜色
pointStrokeFont 12px Arial String 点注记描边文件的字体大小,字体类型
pointStrokeAlpha 1 Number 点注记描边文件的透明度
pointHeight 12 Int 点注记文字宽度,通常设置时需比字体大两个像素,主要用于算避让box的高度
pointBackgroundColor #ff0000 16进制颜色值 点注记背景矩形框的填充色
pointBackgroundAlpha 1 Number 点注记背景矩形框的透明度
pointBackgroundLineWidth 1 Int 点注记背景矩形框的边框宽度
pointBackgroundLineColor #ff0000 16进制颜色值 点注记背景矩形框的边框颜色
pointBackgroundRadius 3 Int 点注记背景矩形框的圆角
pointBackgroundGap 3 Int 点注记背景矩形边缘与里面文字的间距
distance undefined Number 点注记去重的间距
lineTextRotate 0 Number 线注记旋转的角度,当开启此属性了,线注记将不会沿线旋转,而是使用该固定角度
lineHashOutline True Boolean 线注记是否有描边
lineHashBackground False Boolean 线注记是否有底部矩形填充
lineFillStyle #000000 16进制颜色值 线注记文字的颜色
lineFillFont 12x Arial String 线注记的字体大小,字体类型
lineFillFont 12x Arial String 线注记的字体大小,字体类型
lineFillAlpha 1 Number 线注记问自己的透明度
lineLineWidth 2 Int 线注记文字的线度
lineStrokeStyle #ffffff 16进制颜色值 线注记描边的颜色
lineStrokeFont 12px Arial String 线注记描边的字体大小,字体类型
lineStrokeAlpha 1 Number 线注记文字的透明度
lineTextDistance undefined Number 线注记文字去重间距
backgroundColor #ff0000 16进制颜色值 线注记背景矩形框的填充颜色
backgroundAlpha 1 Number 线注记背景矩形框的透明度
backgroundLineWidth #ff0000 16进制颜色值 线注记背景矩形框的边线宽度
lineBackgroundRadius 3 Int 线注记背景矩形框的圆角
lineBackgroundGap 3 int 单位像素,缘与里面文字的间距
lineHeight 12 Int 单位像素,线注记文字的高度
isTransverse false boolean 线注记只有一个点时,是否横摆
extendedNum 3 int 线注记需要延长的字等于或超过几个字时,不显示
codeLineHashOutline False boolean 线编码注记是否有文字描边
codeLineHashBackground False boolean 线编码注记是否有背景填充框
showRoadCode False boolean 是否显示线编码注记
showArrow False boolean 是否显示道路箭头
roadCodeLabel “” String 道路编号的字段名
codeLineFillStyle #000000 16进制颜色值 线编码注记的文字颜色
codeLineFillFont 16px Arial String 线编码注记的字体大小,字体类型
codeLineFillAlpha 1 Number 线编码的文字透明度
codeLineLineWidth 2 Numbe 线编码的文字线宽度
codeLineStrokeStyle #ffffff 16进制颜色值 线编码注记的描边颜色
codeLineStrokeFont 12px Arial String 线编码注记的描边字体大小,字体类型
codeLineStrokeAlpha 1 Number 线编码注记描边的透明度
codeBackgroundColor #ff0000 16进制颜色值 线编码注记背景矩形框填充色
codeBackgroundAlpha 1 Number 线编码注记背景矩形框透明度
codeLineBackgroundGap 3 Int 线编码注记背景矩形框与文字的间距
codeBackgroundLineWidth #ff0000 16进制颜色值 线编码注记背景矩形边线
codeLineBackgroundRadius 3 Int 线编码注记背景矩形圆角
codeLineHeight 12 Int 线编码注记文字高度
lineCodeDistance undefined Number 线编码注记去重间距
arrowDirectionValue 0 Int 道路箭头的方向, 0为沿线的正方向,1为沿线的反方向

# 附2-底图要素属性列表

描述:样式注记主要是对于地图注记样式的定义,例如注记的字体、颜色、大小、符号、权重等等,具体属性如下表所示。

属性名 是否必须 默认值 类型 含义
fill True Boolean 是否有填充色
fillColor 16进制颜色值 底图要素填充色
fillOpacity Number 底图要素填充透明度
texture String 要素填充纹理id
stroke False Boolean 是否有边框
strokeWidth Boolean 边框宽度
strokeColor 16进制颜色值 边框颜色值
strokeOpacity Number 边框透明度
dash Array 虚线线段数据。如:[10,10] 每隔10个像素,画10像素长的线
lineCap butt String Butt:向线条的每个末端添加平直的边缘 Round:向线条的每个末端添加圆形线帽 Square:向线条的每个末端添加正方形线帽

# Leaflet 官方API

https://leafletjs.com/reference-1.3.4.html (opens new window)