类参考
# 概述
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)