Root Properties

GeoGlobe样式的根级属性指定地图的图层,图块源和其他资源,以及未在其他地方指定的初始摄像机位置的默认值。

{
    "version": 8,
    "name": name,
    "sprite": "http://ip:port",
    "glyphs": "http://ip:port",
    "sources": {...},
    "layers": [...]
}
version
必需的 枚举

样式规格版本号。 必须是8。

"version": 8
name
可选 字符串类型

可读样式名称。

"name": "Bright"
metadata
可选

使用样式表跟踪的任意属性,但不影响渲染。 应该为属性添加前缀以避免冲突。

center
可选 数值 数组类型

经度和纬度的默认地图中心。 仅当未通过其他方式(例如地图选项或用户交互)定位地图时,才会使用样式中心。

"center": [
  -73.9749,
  40.7736
]
zoom
可选 数值

默认缩放级别。 仅当未通过其他方式(例如地图选项或用户交互)定位地图时,才会使用样式缩放。

"zoom": 12.5
bearing
可选 数值 单位为 默认为 0

默认方位角,以度为单位。 方位在罗盘上是“向上”的方向; 例如,地图上方位角为90度时,指向东方。 仅当未通过其他方式(例如地图选项或用户交互)定位地图时,才会使用此值。

"bearing": 29
pitch
可选 数值 单位为 默认为 0

默认间距,以度为单位。 零垂直于表面,直视地图,而更大的值如60朝向地平线。 仅当未通过其他方式(例如地图选项或用户交互)定位地图时,才会使用样式间距。

"pitch": 50
light
可选 光源

全球光源。

"light": {
  "anchor": "viewport",
  "color": "white",
  "intensity": 0.4
}
sources
具有 值的 必需是 对象

数据源规范。

"sources": {
  "mapbox-streets": {
    "type": "vector",
    "url": "http://ip:port"
  }
}
sprite
可选 字符串类型

用于检索雪碧图图像和元数据的基本URL。 延伸部 .png .json 和比例因子 @2x.png 将自动附加。 如果任何层使用,则需要此属性 background-pattern fill-pattern line-pattern fill-extrusion-pattern ,或 icon-image 特性。 URL必须是绝对的,包含 scheme,权限和路径组件

"sprite": "http://ip:port"
glyphs
可选 字符串类型

用于以PBF格式加载signed-distance-field字形集的URL模板。 URL必须包含 {fontstack} {range} 令牌。 如果任何图层使用 text-field 布局属性, 则此属性是必需的 URL必须是绝对路径,包含 scheme,权限和路径组件

"glyphs": "http://ip:port"
transition
可选的 过渡

全局转换定义,默认用作属性转换,用于在未设置属性特定转换时在一个值与下一个值之间进行定时转换。 有冲突的符号衰落的控制与 transition 的样式属性 无关

"transition": {
  "duration": 300,
  "delay": 0
}
layers
需要 图层 数组

将按此数组的顺序绘制图层。

"layers": [
  {
    "id": "water",
    "source": "mapbox-streets",
    "source-layer": "water",
    "type": "fill",
    "paint": {
      "fill-color": "#00ffff"
    }
  }
]

Light

样式的 light 属性为该 样式 提供全球光源。

"light": {
  "anchor": "viewport",
  "color": "white",
  "intensity": 0.4
}
anchor
可选的 枚举 一个 "map" "viewport" 默认为 "viewport"

突出的几何是否相对于贴图或视口点亮。

"map"

光源的位置与地图的旋转对齐。

"viewport"

光源的位置与视口的旋转对齐。

"anchor": "map"
position
可选 数值 数组 类型 默认为 [1.15,210,30]

光源相对于点亮(突出)几何形状的位置,在 [r径向坐标,方位角,p极角]中 ,其中r表示从物体基部中心到其光的距离,a表示光源的位置相对于0°的光线( light.anchor 设置为 viewport 对应于视口顶部时 light.anchor 0°, 设置为 map 对应于正北方向 ,顺时针方向为度数),p表示光线高度(从0开始) °,正上方,180°,正下方)。

"position": [
  1.5,
  90,
  80
]
color
可选 颜色 默认为 "#ffffff"

用于照明突出几何形状的颜色色调。

intensity
可选的 数值 在0 和1 之间 默认为 0.5

照明强度(从0到1的等级)。 较高的数值将表现为更极端的对比度。

Sources

来源提供的数据将显示在地图上。 源的类型由 "type" 属性 指定 ,并且必须是 vector raster raster-dem geojson image video之一 添加源不会立即使数据显示在地图上,因为源不包含颜色或宽度等样式细节。 图层引用源并为其提供可视化表示。 这使得可以以不同的方式对相同的源进行样式化,例如区分高速公路层中的道路类型。

平铺源(矢量和栅格)必须根据 TileJSON规范 指定其详细信息 这可以通过以下几种方式完成:

  • 通过提供TileJSON性能如 "tiles" "minzoom" 以及 "maxzoom" 直接在源:
    "mapbox-streets": {
        "type": "vector",
        "tiles": [
        "http://a.example.com/tiles/{z}/{x}/{y}.pbf",
        "http://b.example.com/tiles/{z}/{x}/{y}.pbf"
        ],
        "maxzoom": 14
    }
  • 通过提供 "url" TileJSON资源:
    "mapbox-streets": {
        "type": "vector",
        "url": "http://api.example.com/tilejson.json"
    }
  • 通过向支持EPSG:3857(或EPSG:900913)的WMS服务器提供URL作为平铺数据的来源。 服务器URL应包含 " {bbox-epsg-3857}" 替换标记以提供 bbox 参数。
    "wms-imagery": {
        "type": "raster",
        "tiles": [
        'http://a.example.com/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&layers=example'
        ],
        "tileSize": 256
    }

vector

矢量瓦片。 瓦片 必须采用 Globe矢量瓦片格式 在矢量瓦片的所有几何坐标必须介于 -1* extent (extent * 2) -1 范围内。 使用矢量源的所有图层都必须指定一个 "source-layer" 值。 对于由Globe托管的矢量切片, "url" 值应为表单

"mapbox-streets": {
    "type": "vector",
    "url": "http://ip:port"
}
url
可选 字符串

TileJSON资源的URL。 支持的协议是 http: https:

tiles
可选 字符串 数组 类型

一个或多个tile源URL的数组,如TileJSON规范中所示。

bounds
可选 数值 数组 类型 默认为 [-180,-85.051129,180,85.051129]

一个数组,按以下顺序包含源边界框的西南角和东北角的经度和纬度: [sw.lng,sw.lat, ne.lng, ne.lat] 当此属性包含在源中时,GeoGlobe不会请求给定边界之外的任何切片。

scheme
可选的 枚举 一个 "xyz" "tms" 默认为 "xyz"

影响拼贴坐标的y方向。 假设全局 - 墨卡托(又称球形墨卡托)轮廓。

"xyz"

Slippy地图tilenames计划。

"tms"

OSGeo规范方案。

minzoom
可选 数值 默认为 0

可用于切片的最小缩放级别,如TileJSON规范中所示。

maxzoom
可选 数值 默认为 22

可用于切片的最大缩放级别,如TileJSON规范中所示。 当以更高的缩放级别显示地图时,将使用maxzoom中的切片数据。

attribution
可选 字符串

包含向用户显示地图时要显示的属性。

raster

栅格瓦片。 对于由Globe托管的栅格切片, "url" 值应为表单

"mapbox-satellite": {
    "type": "raster",
    "url": "http://ip:port",
    "tileSize": 256
}
url
可选 字符串

TileJSON资源的URL。 支持的协议是 http: https:

tiles
可选 字符串 数组 类型

一个或多个tile源URL的数组,如TileJSON规范中所示。

bounds
可选 数值 数组 类型 默认为 [-180,-85.051129,180,85.051129]

一个数组,按以下顺序包含源边界框的西南角和东北角的经度和纬度: [sw.lng,sw.lat, ne.lng, ne.lat] 当此属性包含在源中时,Globe不会请求给定边界之外的任何切片。

minzoom
可选 数值 默认为 0

可用于切片的最小缩放级别,如TileJSON规范中所示。

maxzoom
可选 数值 默认为 22

可用于切片的最大缩放级别,如TileJSON规范中所示。 当以更高的缩放级别显示地图时,将使用maxzoom中的切片数据。

tileSize
可选 数值 单位为 像素 默认为 512

显示此图层的平铺的最小视觉大小。 仅可配置栅格图层。

scheme
可选的 枚举 一个 "xyz" "tms" 默认为 "xyz"

影响拼贴坐标的y方向。 假设全局 - 墨卡托(又称球形墨卡托)轮廓。

"xyz"

Slippy地图tilenames计划。

"tms"

OSGeo规范方案。

attribution
可选 字符串

包含向用户显示地图时要显示的属性。

raster-dem

栅格DEM源。 目前仅支持 Mapbox Terrain RGB

"mapbox-terrain-rgb": {
    "type": "raster-dem",
    "url": "https://ip:port"
}
url
可选 字符串

TileJSON资源的URL。 支持的协议是 http: https:

tiles
可选 字符串 数组 类型

一个或多个tile源URL的数组,如TileJSON规范中所示。

bounds
可选 数值 数组 类型 默认为 [-180,-85.051129,180,85.051129]

一个数组,按以下顺序包含源边界框的西南角和东北角的经度和纬度: [sw.lng,sw.lat, ne.lng, ne.lat] 当此属性包含在源中时,Globe不会请求给定边界之外的任何切片。

minzoom
可选 数值 默认为 0

可用于切片的最小缩放级别,如TileJSON规范中所示。

maxzoom
可选 数值 默认为 22

可用于切片的最大缩放级别,如TileJSON规范中所示。 当以更高的缩放级别显示地图时,将使用maxzoom中的切片数据。

tileSize
可选 数值 单位为 像素 默认为 512

显示此图层的平铺的最小视觉大小。 仅可配置栅格图层。

attribution
可选 字符串

包含向用户显示地图时要显示的属性。

encoding
可选的 枚举 一个 "terrarium" "mapbox" 默认为 "mapbox"

此源使用的编码。 默认情况下使用Mapbox Terrain RGB

"terrarium"

Terrarium格式PNG瓦片。

"mapbox"

Mapbox Terrain RGB图块。

geojson

一个 GeoJSON的 来源。 必须通过 "data" 属性 提供数据,该 属性的值可以是URL或内联GeoJSON。

"geojson-marker": {
    "type": "geojson",
    "data": {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [-77.0323, 38.9131]
        },
        "properties": {
            "title": "Mapbox DC",
            "marker-symbol": "monument"
        }
    }
}

此GeoJSON源示例通过其URL引用外部GeoJSON文档。 GeoJSON文档必须位于同一域中,或使用 CORS 访问

"geojson-lines": {
    "type": "geojson",
    "data": "./lines.geojson"
}
data
可选

GeoJSON文件的URL或内联GeoJSON。

maxzoom
可选 数值 默认为 18

创建矢量切片的最大缩放级别(更高意味着在高缩放级别更高的细节)。

attribution
可选 字符串

包含向用户显示地图时要显示的属性。

buffer
可选的 数值类型 范围在0 512内 默认为 128

每侧的图块缓冲区的大小。 值0不产生缓冲区。 值512会生成与磁贴本身一样宽的缓冲区。 较大的值会在拼贴边缘附近产生较少的渲染瑕疵,并且性能较慢

tolerance
可选 数值 默认为 0.375

Douglas-Peucker简化公差(更高意味着更简单的几何形状和更快的性能)。

cluster
可选的 布尔值 默认为 false

如果数据是点要素的集合,则将此设置为true会将点按半点聚类为组。 群集组成 Point 为源中的 功能,具有其他属性:

  • cluster true 如果点是集群
  • cluster_id 集群的unqiue id与 集群检查方法 一起使用
  • point_count 分组到此群集中的原始点数
  • point_count_abbreviated 缩写点数
clusterRadius
可选 数值 大于 或等于 0 默认为 50

如果启用了群集,则为每个群集的半径。 值512表示半径等于图块的宽度。

clusterMaxZoom
可选 数值

如果启用了群集,则最大缩放以聚集点。 默认为小于maxzoom的一个缩放(以便最后缩放功能不会聚集)。

lineMetrics
可选的 布尔值 默认为 false

是否计算行距离度量。 这是指定 line-gradient 值的 线图层所必需的

generateId
可选的 布尔值 默认为 false

是否为geojson功能生成id。 启用后, feature.id 将根据 features 数组中的 索引自动分配属性 ,覆盖以前的任何值。

image

图像源。 "url" 值包含图像位置。

"coordinates" 数组包含 [longitude,latitude] 按顺时针顺序列出的图像角点对:左上角,右上角,右下角,左下角。

"image": {
    "type": "image",
    "url": "https://ip:port/assets/radar.gif",
    "coordinates": [
        [-80.425, 46.437],
        [-71.516, 46.437],
        [-71.516, 37.936],
        [-80.425, 37.936]
    ]
}
url
必填 字符串

指向图像的URL。

coordinates
必须 数组 类型 数目 小号

以经度,纬度对指定的图像角。

video

一个视频源。 "urls" 值是一个数组。 对于数组中的每个URL, 将创建 视频元素 ,以便支持不同浏览器支持的多种格式的相同媒体。

"coordinates" 数组包含 [longitude,latitude] 按顺时针顺序列出的视频角对:左上角,右上角,右下角,左下角。

"video": {
    "type": "video",
    "urls": [
        "https://ip:port/drone/video/drone.mp4",
        "https://ip:port/drone/video/drone.webm"
    ],
    "coordinates": [
        [-122.51596391201019, 37.56238816766053],
        [-122.51467645168304, 37.56410183312965],
        [-122.51309394836426, 37.563391708549425],
        [-122.51423120498657, 37.56161849366671]
    ]
}
urls
必需 字符串 数组 类型

按首选格式排列的视频内容的URL。

coordinates
必须 数组 类型 数目 小号

以经度,纬度对指定的视频角。

Sprite

样式的 sprite 属性放入小图像渲染使用提供了一个网址范本 background-pattern fill-pattern line-pattern fill-extrusion-pattern icon-image 样式属性。

"sprite": "http://ip:port"

有效的雪碧图源必须提供两种类型的文件:

  • 一个 索引文件 ,其是含有包含在所述子画面的每个图像的描述的JSON文档。 此文件的内容必须是JSON对象,其键形成标识符以用作上述样式属性的值,其值是描述图像的尺寸( width height 属性)和像素比率( pixelRatio )的对象及其位置雪碧图( x y )。 例如,包含单个图像的sprite可能具有以下索引文件内容:
    {
        "poi": {
            "width": 32,
            "height": 32,
            "x": 0,
            "y": 0,
            "pixelRatio": 1
        }
    }
    然后样式可以通过创建符号层的布局属性参考此子画面图像 "icon-image":"poi" ,或使用带标记的值 "icon-image":" {icon}" 与和矢量瓦片特征 icon 与所述值属性 poi
  • 图像文件 ,是包含雪碧图数据的PNG图像。

Glyphs

style的 glyphs 属性提供了一个URL模板,用于加载PBF格式的signed-distance-field字形集。

"glyphs": "http://ip:port"

此网址模板应包含两个令牌:

  • {fontstack} 请求字形时,此标记将替换 text-font 为符号图层属性中 指定的字体堆栈中以逗号分隔的字体列表
  • {range} 请求字形时,此标记将替换为256个Unicode代码点。 例如,要为 Unicode Basic Latin和Basic Latin-1 Supplement块 加载字形 ,范围将为 0-255 根据需要显示的文本,在运行时确定加载的实际范围。

Transition

一个 transition 属性控制的可转换风格属性以前的值和新值之间的插定时。 样式的 root transition 属性为该 样式 提供全局转换默认值。 任何可转换样式属性也可以具有其自己的 -transition 属性, 属性定义该特定图层属性的特定转换时间,从而覆盖全局 transition 值。

"transition": {
  "duration": 300,
  "delay": 0
}
duration
可选 数值 大于或等于 0 单位,以 毫秒为单位 默认为 300

分配时间以完成转换。

delay
可选 数值 大于或等于 0 单位,以 毫秒为单位 默认为 0

转换开始前的时间长度。

Layers

样式的 layers 属性列出了该样式中可用的所有图层。 图层的类型由 "type" 属性 指定 ,并且必须是 背景 填充 线条 符号 栅格 圆形 填充 - 挤出 热力图 山体阴影之一

除了 背景 类型的 图层 ,每个图层都需要引用一个源。 图层从源获取数据,可选择过滤器功能,然后定义这些功能的样式。

"layers": [
  {
    "id": "water",
    "source": "mapbox-streets",
    "source-layer": "water",
    "type": "fill",
    "paint": {
      "fill-color": "#00ffff"
    }
  }
]
id
必填 字符串

唯一的图层名称。

type
必须是 枚举 "fill" "line" "symbol" "circle" "heatmap" "fill-extrusion" "raster" "hillshade" "background"

渲染此图层的类型。

"fill"

带有可选描边边框的填充多边形。

"line"

划线。

"symbol"

图标或文本标签。

"circle"

一个圆圈。

"heatmap"

热力图。

"fill-extrusion"

拉伸(3D)多边形。

"raster"

光栅贴图纹理,如卫星图像。

"hillshade"

基于DEM数据的客户端山体阴影可视化。 目前,该实现仅支持Mapbox Terrain RGB和Mapzen Terrarium tile。

"background"

地图的背景颜色或图案。

metadata
可选

任意属性对于跟踪图层很有用,但不影响渲染。 应该为属性添加前缀以避免冲突。

source
可选 字符串

要用于此图层的源描述的名称。 要求所有图层类型除外 background

source-layer
可选 字符串

要从矢量切片源使用的图层。 矢量图块源需要; 禁止用于所有其他源类型,包括GeoJSON源。

minzoom
可选的 数值 并在 范围内 0 24

图层的最小缩放级别。 在缩放级别小于minzoom时,图层将被隐藏。

maxzoom
可选的 数值 并在此 范围 0 24

图层的最大缩放级别。 在缩放级别等于或大于maxzoom时,图层将被隐藏。

filter
可选 表达式

指定源要素条件的表达式。 仅显示与过滤器匹配的功能。 feature-state 表达没有在过滤器表达式支持。

layout
可选 布局

图层的布局属性。

paint
可选 绘制

此图层的默认绘制属性。

图层有两个子属性,用于确定如何呈现来自该图层的数据: layout paint 属性。

布局属性 显示在图层的 "layout" 对象中。 它们在渲染过程的早期应用,并定义如何将该层的数据传递给GPU。 对布局属性的更改需要异步“布局”步骤。

稍后在渲染过程中应用 绘制属性 绘图属性显示在图层的 "paint" 对象中。 对paint属性的更改很方便并且同步发生。

background

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

background-color
绘制 属性。 可选 颜色 默认为 "#000000" 背景图案 禁用

用于绘制背景的颜色。

background-pattern
绘制 属性。 可选 字符串

雪碧图中用于绘制图像背景的图像名称。 对于无缝图案,图像宽度和高度必须是两倍(2,4,8,...,512)。 请注意,仅在整数缩放级别评估与缩放相关的表达式。

background-opacity
绘制 属性。 可选的 数值类型 在0和1范围 默认为 1

将绘制背景的不透明度。

fill

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

fill-antialias
绘制 属性。 可选的 布尔值 默认为 true

填充是否应该是抗锯齿的。

fill-opacity
绘制 属性。 可选的 数值类型 并在0和1 范围 默认为 1

整个填充图层的不透明度。 与此相反 fill-color ,如果使用笔划,此值也将影响填充周围的1px笔划。

fill-color
绘制 属性。 可选 颜色 默认为 "#000000" 填充模式 禁用

此图层填充部分的颜色。 此颜色可以指定为 rgba alpha分量,颜色的不透明度不会影响1px笔划的不透明度(如果使用)。

fill-outline-color
绘制 属性。 可选 颜色 填充模式 禁用 必须是 填写抗锯齿 true

填充的轮廓颜色。 匹配 fill-color 如果未指定

fill-translate
绘制 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0]

几何的偏移量。 值为 [x,y] ,其中负数分别表示左和上。

fill-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 填写转换

控制参考框架 fill-translate

"map"

填充相对于地图进行转换。

"viewport"

填充相对于视口进行转换。

fill-pattern
绘制 属性。 可选 字符串

雪碧图中用于绘制图像填充的图像名称。 对于无缝图案,图像宽度和高度必须是两倍(2,4,8,...,512)。 请注意,仅在整数缩放级别评估与缩放相关的表达式。

line

line-cap
布局 属性。 可选的 枚举 "butt" "round" "square" 默认为 "butt"

行尾的显示。

"butt"

带有方形末端的帽子,该末端被绘制到线的确切端点。

"round"

一个圆形端盖,在线的端点处以半径为线的一半,并以线的端点为中心。

"square"

带有方形端的帽,在线的宽度的一半处绘制超出线的端点。

line-join
布局 属性。 可选的 枚举 "bevel" "round" "miter" 默认为 "miter"

加入时显示线条。

"bevel"

具有方形末端的连接,该方形在线的宽度的一半处被绘制超出线的端点。

"round"

具有圆形末端的连接,该末端在线的端点处以半径为线的宽度的一半绘制并且以线的端点为中心。

"miter"

一个带有尖角的角部连接,其外侧绘制超出路径的终点直到它们相遇。

line-miter-limit
布局 属性。 可选 数值 默认为 2 必须是 线联接 "miter"

用于自动将斜接连接转换为斜角连接以获得锐角。

line-round-limit
布局 属性。 可选 数值 默认为 1.05 必须是 线联接 "round"

用于自动将圆形连接转换为斜角连接的浅角度。

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

line-opacity
绘制 属性。 可选的 数值 并在0和1 范围 默认为 1

将绘制线条的不透明度。

line-color
绘制 属性。 可选 颜色 默认为 "#000000" 行模式 禁用

用于绘制线条的颜色。

line-translate
绘制 属性。 可选 数值 数组 类型 单位为 像素 默认为 [0,0]

几何的偏移量。 值为 [x,y] ,其中负数分别表示左和上。

line-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 换行

控制参考框架 line-translate

"map"

该线相对于地图进行平移。

"viewport"

该线相对于视口进行平移。

line-width
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 1

线的宽度。

line-gap-width
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0

在线的实际路径之外绘制线框。 值表示内部间隙的宽度。

line-offset
绘制 属性。 可选 数值 单位为 像素 默认为 0

线的偏移量。 对于线性要素,正值将相对于线方向的线向右偏移,向左偏移负值。 对于面要素,正值会导致插入,负值会导致出现。

line-blur
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0

模糊应用于线条,以像素为单位。

line-dasharray
绘制 属性。 可选 数组 数目 类型 大于或等于 0 线宽 单位 行模式 禁用

指定形成虚线图案的交替破折号和间隙的长度。 长度稍后通过线宽缩放。 要将短划线长度转换为像素,请将长度乘以当前线宽。 请注意, lineMetrics:true 指定的 GeoJSON源 不会将虚线渲染到预期的比例。 另请注意,仅在整数缩放级别评估与缩放相关的表达式。

line-pattern
绘制 属性。 可选 字符串

雪碧图中用于绘制图像线的图像名称。 对于无缝模式,图像宽度必须是两倍(2,4,8,...,512)。 请注意,仅在整数缩放级别评估与缩放相关的表达式。

line-gradient
绘制 属性。 可选 颜色 line-dasharray 禁用 行模式 禁用 需要 "geojson"

定义用于为线要素着色的渐变。 只能与指定的GeoJSON源一起使用 "lineMetrics":true

symbol

symbol-placement
布局 属性。 可选的 枚举 "point" "line" "line-center" 默认为 "point"

标签相对于其几何体的位置。

"point"

标签位于几何图形所在的位置。

"line"

标签沿几何线放置。 只能用于 LineString Polygon 几何。

"line-center"

标签位于几何线的中心。 只能用于 LineString Polygon 几何。 请注意,矢量切片中的单个要素可能包含多个线几何。

symbol-spacing
布局 属性。 可选 数值 大于或等于 1 单位为 像素 默认为 250 需要 符号位置 "line"

两个符号锚点之间的距离。

symbol-avoid-edges
布局 属性。 可选的 布尔值 默认为 false

如果为true,则符号将不会越过tile边缘以避免相互冲突。 建议在矢量切片中没有足够填充的图层中以防止碰撞,或者如果它是位于线符号图层后面的点符号图层。

symbol-z-order
布局 属性。 可选的 枚举 一个 "viewport-y" "source" 默认为 "viewport-y"

控制渲染同一图层中重叠符号的顺序

"viewport-y"

符号将按其相对于视口的y位置进行排序。

"source"

符号将以与源数据相同的顺序呈现,不应用任何排序。

icon-allow-overlap
布局 属性。 可选的 布尔值 默认为 false 需要 图标图像

如果为true,即使图标与其他先前绘制的符号发生碰撞,该图标也将可见。

icon-ignore-placement
布局 属性。 可选的 布尔值 默认为 false 需要 图标图像

如果为true,即使其他符号与图标发生碰撞,也可以看到其他符号。

icon-optional
布局 属性。 可选的 布尔值 默认为 false 需要 图标图像 需要 文本字段

如果为true,当图标与其他符号发生碰撞而文本没有碰撞时,文本将显示没有相应的图标。

icon-rotation-alignment
布局 属性。 可选的 枚举 "map" "viewport" "auto" 默认为 "auto" 需要 图标图像

结合使用 symbol-placement ,确定图标的旋转行为。

"map"

symbol-placement 设置为 point ,对齐图标东西。 symbol-placement 设置为 line 或时 line-center ,将图标x轴与线对齐。

"viewport"

生成x轴与视口的x轴对齐的图标,无论其值如何 symbol-placement

"auto"

symbol-placement 设置为时 point ,这相当于 viewport symbol-placement 设置为 line 或时 line-center ,这相当于 map

icon-size
布局 属性。 可选 数值 大于或等于 0 原始图标大小的系数 单位 默认为 1 需要 图标图像

按提供的系数缩放图标的原始大小。 图像的新像素大小将是原始像素大小乘以 icon-size 1是原始尺寸; 3倍于图像的大小。

icon-text-fit
布局 属性。 可选的 枚举 "none" "width" "height" "both" 默认为 "none" 需要 图标图像 需要 文本字段

缩放图标以适合相关文本。

"none"

图标以其固有宽高比显示。

"width"

图标在x维度上缩放以适合文本的宽度。

"height"

该图标在y维度上缩放以适合文本的高度。

"both"

图标在x和y维度上缩放。

icon-text-fit-padding
布局 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0,0,0] 需要 图标图像 需要 文本字段 需要 图标文本配合 "both" ,或 "width" ,或 "height"

添加到尺寸的附加区域的大小由 icon-text-fit 顺时针顺序 确定 :顶部,右侧,底部,左侧。

icon-image
布局 属性。 可选 字符串

雪碧图中用于绘制图像背景的图像名称。

icon-rotate
布局 属性。 可选 号码 单位为 默认为 0 需要 图标图像

顺时针旋转图标。

icon-padding
布局 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 2 需要 图标图像

用于检测符号碰撞的图标边界框周围的附加区域的大小。

icon-keep-upright
布局 属性。 可选的 布尔值 默认为 false 需要 图标图像 需要 图标旋转对准 "map" 需要 符号位置 "line" ,或 "line-center"

如果为true,则可以翻转图标以防止其呈现倒置。

icon-offset
布局 属性。 可选 数值 数组 s 默认为 [0,0] 需要 图标图像

图标与其锚点的偏移距离。 正值表示向右和向下,而负值表示向左和向上。 每个分量乘以值 icon-size 以获得最终的偏移量(以像素为单位)。 当与 icon-rotate 偏移 结合时 ,就好像旋转的方向一样。

icon-anchor
布局 属性。 可选的 枚举 "center" "left" "right" "top" "bottom" "top-left" "top-right" "bottom-left" "bottom-right" 默认为 "center" 需要 图标图像

最靠近锚点的图标的一部分。

"center"

图标的中心位于最靠近锚点的位置。

"left"

图标的左侧最靠近锚点放置。

"right"

图标的右侧最靠近锚点放置。

"top"

图标的顶部放置在离锚点最近的位置。

"bottom"

图标的底部最靠近锚点放置。

"top-left"

图标的左上角最靠近锚点。

"top-right"

图标的右上角最靠近锚点。

"bottom-left"

图标的左下角最靠近锚点。

"bottom-right"

图标的右下角最靠近锚点。

icon-pitch-alignment
布局 属性。 可选的 枚举 "map" "viewport" "auto" 默认为 "auto" 需要 图标图像

投放地图时图标的方向。

"map"

图标与地图平面对齐。

"viewport"

图标与视口平面对齐。

"auto"

自动匹配的值 icon-rotation-alignment

text-pitch-alignment
布局 属性。 可选的 枚举 "map" "viewport" "auto" 默认为 "auto" 需要 文本字段

投放地图时的文本方向。

"map"

文本与地图平面对齐。

"viewport"

文本与视口平面对齐。

"auto"

自动匹配的值 text-rotation-alignment

text-rotation-alignment
布局 属性。 可选的 <枚举 "map" "viewport" "auto" 默认为 "auto" 需要 文本字段

与之组合 symbol-placement ,确定形成文本的各个字形的旋转行为。

"map"

symbol-placement 设置为 point ,对齐文本东西。 symbol-placement 设置为 line 或时 line-center ,将文本x轴与线对齐。

"viewport"

生成其x轴与视口的x轴对齐的字形,无论其值如何 symbol-placement

"auto"

symbol-placement 设置为时 point ,这相当于 viewport symbol-placement 设置为 line 或时 line-center ,这相当于 map

text-field
布局 属性。 可选 格式化 默认为 ""

用于文本标签的值。 如果 string 提供 了plain ,则将其视为 formatted 具有默认/继承格式选项。

text-font
布局 属性。 可选 字符串 数组 s 默认为 ["Open Sans Regular","Arial Unicode MS Regular"] 需要 文本字段

用于显示文本的字体堆栈。

text-size
布局 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 16 需要 文本字段

字体大小。

text-max-width
布局 属性。 可选 数值 大于或等于 0 ems中的 单位 默认为 10 需要 文本字段

文本换行的最大行宽。

text-line-height
布局 属性。 可选 号码 ems中的 单位 默认为 1.2 需要 文本字段

多行文本的文本前导值。

text-letter-spacing
布局 属性。 可选 号码 ems中的 单位 默认为 0 需要 文本字段

文字追踪金额。

text-justify
布局 属性。 可选的 枚举 "left" "center" "right" 默认为 "center" 需要 文本字段

文本对齐选项。

"left"

文本与左侧对齐。

"center"

文本居中。

"right"

文本与右侧对齐。

text-anchor
布局 属性。 可选的 枚举 "center" "left" "right" "top" "bottom" "top-left" "top-right" "bottom-left" "bottom-right" 默认为 "center" 需要 文本字段

部分文本最靠近锚点。

"center"

文本的中心位于最靠近锚点的位置。

"left"

文本的左侧最靠近锚点放置。

"right"

文本的右侧最靠近锚点放置。

"top"

文本顶部最靠近锚点放置。

"bottom"

文本底部最靠近锚点放置。

"top-left"

文本的左上角最靠近锚点。

"top-right"

文本的右上角最靠近锚点。

"bottom-left"

文本的左下角最靠近锚点。

"bottom-right"

文本的右下角最靠近锚点。

text-max-angle
布局 属性。 可选 号码 单位为 默认为 45 需要 文本字段 需要 符号位置 "line" ,或 "line-center"

相邻字符之间的最大角度变化。

text-rotate
布局 属性。 可选 号码 单位为 默认为 0 需要 文本字段

顺时针旋转文本。

text-padding
布局 属性。 可选 <数值 大于或等于 0 单位为 像素 默认为 2 需要 文本字段

用于检测符号冲突的文本边界框周围的附加区域的大小。

text-keep-upright
布局 属性。 可选的 布尔值 默认为 true 需要 文本字段 需要 文本旋转对齐 "map" 需要 符号位置 "line" ,或 "line-center"

如果为true,则可以垂直翻转文本以防止其呈现倒置。

text-transform
布局 属性。 可选的 枚举 "none" "uppercase" "lowercase" 默认为 "none" 需要 文本字段

指定如何大写文本,类似于CSS text-transform 属性。

"none"

文本没有改变。

"uppercase"

强制所有字母以大写形式显示。

"lowercase"

强制所有字母以小写显示。

text-offset
布局 属性。 可选 数值 数组 s ems中的 单位 默认为 [0,0] 需要 文本字段

文本与其锚点的偏移距离。 正值表示向右和向下,而负值表示向左和向上。

text-allow-overlap
布局 属性。 可选的 布尔值 默认为 false 需要 文本字段

如果为true,即使文本与其他先前绘制的符号发生碰撞,文本也将可见。

text-ignore-placement
布局 属性。 可选的 布尔值 默认为 false 需要 文本字段

如果为true,则即使其他符号与文本发生碰撞,也可以看到其他符号。

text-optional
布局 属性。 可选的 布尔值 默认为 false 需要 文本字段 需要 图标图像

如果为true,则当文本与其他符号发生碰撞而图标没有碰撞时,图标将显示没有相应的文本。

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

icon-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1 需要 图标图像

将绘制图标的不透明度。

icon-color
绘制 属性。 可选 颜色 默认为 "#000000" 需要 图标图像

图标的颜色。 这只能与sdf图标一起使用。

icon-halo-color
绘制 属性。 可选 颜色 默认为 "rgba(0, 0, 0, 0)" 需要 图标图像

图标晕的颜色。 图标晕圈只能与SDF图标一起使用。

icon-halo-width
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0 需要 图标图像

光晕到图标轮廓的距离。

icon-halo-blur
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0 需要 图标图像

淡出外面的光环。

icon-translate
绘制 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0] 需要 图标图像

图标的锚点从其原始位置移动的距离。 正值表示向右和向下,而负值表示向左和向上。

icon-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 图标图像 需要 图标转换

控制参考框架 icon-translate

"map"

图标相对于地图进行转换。

"viewport"

图标相对于视口进行转换。

text-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1 需要 文本字段

将绘制文本的不透明度。

text-color
绘制 属性。 可选 颜色 默认为 "#000000" 需要 文本字段

用于绘制文本的颜色。

text-halo-color
绘制 属性。 可选 颜色 默认为 "rgba(0, 0, 0, 0)" 需要 文本字段

文本光环的颜色,有助于它从背景中脱颖而出。

text-halo-width
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0 需要 文本字段

光晕到字体轮廓的距离。 最大文本光晕宽度是字体大小的1/4。

text-halo-blur
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0 需要 文本字段

光晕向外倾斜的距离。

text-translate
绘制 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0] 需要 文本字段

文本锚点从其原始位置移动的距离。 正值表示向右和向下,而负值表示向左和向上。

text-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 文本字段 需要 文本转换

控制参考框架 text-translate

"map"

文本相对于地图进行转换。

"viewport"

文本相对于视口进行转换。

raster

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

raster-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

将绘制图像的不透明度。

raster-hue-rotate
绘制 属性。 可选 号码 单位为 默认为 0

旋转色轮周围的色调。

raster-brightness-min
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 0

增加或减少图像的亮度。 该值是最小亮度。

raster-brightness-max
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

增加或减少图像的亮度。 该值是最大亮度。

raster-saturation
绘制 属性。 可选的 号码 之间 包容性 -1 1 默认为 0

增加或减少图像的饱和度。

raster-contrast
绘制 属性。 可选的 号码 之间 包容性 -1 1 默认为 0

增加或减少图像的对比度。

raster-resampling
绘制 属性。 可选的 枚举 一个 "linear" "nearest" 默认为 "linear"

用于过度缩放的重采样/插值方法,也称为纹理放大滤波器

"linear"

(Bi)线性滤波使用四个最接近的原始源像素的加权平均值来内插像素值,从而在过度缩放时创建平滑但模糊的外观

"nearest"

最近邻滤波使用最近的原始源像素插值像素值,在过度缩放时创建清晰但像素化的外观

raster-fade-duration
绘制 属性。 可选 数值 大于或等于 0 单位,以 毫秒为单位 默认为 300

添加新图块时的淡入淡出持续时间。

circle

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

circle-radius
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 5

圆半径。

circle-color
绘制 属性。 可选 颜色 默认为 "#000000"

圆的填充颜色。

circle-blur
绘制 属性。 可选 号码 默认为 0

模糊圆圈的数量。 1使圆圈模糊,使得只有中心点是完全不透明的。

circle-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

将绘制圆的不透明度。

circle-translate
绘制 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0]

几何的偏移量。 值为 [x,y] ,其中负数分别表示左和上。

circle-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 循环转换

控制参考框架 circle-translate

"map"

圆圈相对于地图进行平移。

"viewport"

圆相对于视口进行平移。

circle-pitch-scale
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map"

在地图倾斜时控制圆的缩放行为。

"map"

圆圈根据它们与相机的明显距离进行缩放。

"viewport"

圆圈不会缩放。

circle-pitch-alignment
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "viewport"

投放地图时的圆的方向。

"map"

圆与图的平面对齐。

"viewport"

圆与视口平面对齐。

circle-stroke-width
绘制 属性。 可选 数值 大于或等于 0 单位为 像素 默认为 0

圆的行程宽度。 笔划放在外面 circle-radius

circle-stroke-color
绘制 属性。 可选 颜色 默认为 "#000000"

圆的笔触颜色。

circle-stroke-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

圆形笔划的不透明度。

fill-extrusion

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

fill-extrusion-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

整个填充挤出层的不透明度。 这是基于每层而非每个功能呈现的,并且数据驱动样式不可用。

fill-extrusion-color
绘制 属性。 可选 颜色 默认为 "#000000" 通过 填充 - 挤出 - 模式 禁用

挤出填充的基色。 挤出的曲面将根据此颜色与根 light 设置 进行不同的着色 如果将此颜色指定为 rgba alpha分量,则将忽略alpha分量; 用于 fill-extrusion-opacity 设置图层不透明度。

fill-extrusion-translate
绘制 属性。 可选 数值 数组 s 单位为 像素 默认为 [0,0]

几何的偏移量。 值为 [x,y] ,其中负数分别表示左和上(在平面上)。

fill-extrusion-translate-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "map" 需要 填充 - 挤出 - 转换

控制参考框架 fill-extrusion-translate

"map"

填充拉伸相对于地图进行平移。

"viewport"

填充拉伸相对于视口进行平移。

fill-extrusion-pattern
绘制 属性。 可选 字符串

雪碧图中的图像名称,用于在挤出填充上绘制图像。 对于无缝图案,图像宽度和高度必须是两倍(2,4,8,...,512)。 请注意,仅在整数缩放级别评估与缩放相关的表达式。

fill-extrusion-height
绘制 属性。 可选 数值 大于或等于 0 单位为 默认为 0

用于拉伸此图层的高度。

fill-extrusion-base
绘制 属性。 可选 数值 大于或等于 0 单位为 默认为 0 需要 填充 - 挤出 - 高度

用于挤出此图层基础的高度。 必须小于或等于 fill-extrusion-height

fill-extrusion-vertical-gradient
绘制 属性。 可选的 布尔值 默认为 true

是否将垂直渐变应用于填充 - 挤出层的侧面。 如果是真的,那么两侧的阴影会稍微暗一些。

heatmap

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

heatmap-radius
绘制 属性。 可选 数值 大于或等于 1 单位为 像素 默认为 30

一个热图点的影响半径,以像素为单位。 增加该值可使热图更平滑,但不太详细。

heatmap-weight
绘制 属性。 可选 数值 大于或等于 0 默认为 1

衡量单个点对热图的贡献程度。 值10相当于在同一点中具有10个重量点1。 与群集结合使用时特别有用。

heatmap-intensity
绘制 属性。 可选 数值 大于或等于 0 默认为 1

类似于 heatmap-weight 但全局控制热图的强度。 主要用于根据缩放级别调整热图。

heatmap-color
绘制 属性。 可选 颜色 默认为 ["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"]

根据热图中的密度值定义每个像素的颜色。 应该是一个 ["heatmap-density"] 用作输入 的表达式

heatmap-opacity
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 1

将绘制热图图层的全局不透明度。

hillshade

visibility
布局 属性。 可选的 枚举 一个 "visible" "none" 默认为 "visible"

是否显示此图层。

"visible"

显示该层。

"none"

该层未显示。

hillshade-illumination-direction
绘制 属性。 可选的 号码 之间 包容性 0 359 默认为 335

用于生成山体阴影的光源的方向,如果 hillshade-illumination-anchor 设置为 视口顶部,则为0,如果 设置为 viewport hillshade-illumination-anchor 则设置为 map

hillshade-illumination-anchor
绘制 属性。 可选的 枚举 一个 "map" "viewport" 默认为 "viewport"

旋转地图时光源的方向。

"map"

山体阴影照明相对于北方向。

"viewport"

山体阴影照明相对于视口顶部。

hillshade-exaggeration
绘制 属性。 可选的 号码 之间 包容性 0 1 默认为 0.5

山体阴凉的强度

hillshade-shadow-color
绘制 属性。 可选 颜色 默认为 "#000000"

远离光源的区域的阴影颜色。

hillshade-highlight-color
绘制 属性。 可选 颜色 默认为 "#FFFFFF"

面向光源的区域的阴影颜色。

hillshade-accent-color
绘制 属性。 可选 颜色 默认为 "#000000"

阴影颜色用于突出陡峭的悬崖和峡谷等崎岖地形。

Types

样式包含各种类型的值,最常见的是作为图层样式属性的值。

Color

color 类型表示 sRGB颜色空间 中的 <颜色 颜色以各种允许的格式编写为JSON字符串:HTML样式的十六进制值,rgb,rgba,hsl和hsla。 也允许 预定义的HTML颜色名称,例如 yellow blue

{
    "line-color": "#ff0",
    "line-color": "#ffff00",
    "line-color": "rgb(255, 255, 0)",
    "line-color": "rgba(255, 255, 0, 1)",
    "line-color": "hsl(100, 50%, 50%)",
    "line-color": "hsla(100, 50%, 50%, 1)",
    "line-color": "yellow"
}

特别值得注意的是对hsl的支持,这 比rgb()更容易推理

Formatted

formatted 类型表示一个字符串,该字符串分为带有单独格式选项的注释部分。

{
    "text-field": ["format",
      "foo", { "font-scale": 1.2 },
      "bar", { "font-scale": 0.8 }
    ]
}

String

字符串基本上只是文本。 在样式中,您将把它放在引号中。

{
    "icon-image": "marker"
}

Boolean

布尔值表示是或否,因此它接受值 true false

{
    "fill-enabled": true
}

Number

数值,通常是整数或浮点数(十进制数)。 写的没有引号。

{
    "text-size": 24
}

Array

数组是以特定顺序的一个或多个数值的逗号分隔列表。 例如,它们用于行虚线阵列,其中数值再次指定line,break和line的间隔。

{
    "line-dasharray": [2, 4]
}

Expressions

可以将任何 布局属性、 绘图属性或 过滤器的 值指定为 表达式 表达式定义了使用 下面描述 运算符 计算属性值的公式 提供的表达式运算符集包括:

  • 用于对数值执行算术运算和其他运算的数学运算符
  • 用于操纵布尔值和进行条件决策的逻辑运算符
  • 用于操纵字符串的字符串运算符
  • 数据操作员,提供对源功能属性的访问
  • 摄像机操作员,提供对定义当前地图视图的参数的访问

表达式表示为JSON数组。 表达式数组的第一个元素是命名表达式运算符的字符串,例如 "*" "case" 后续元素(如果有)是 表达式 参数 每个参数都是文字值(字符串,数值,布尔值或 null )或其他表达式数组。

[expression_name, argument_0, argument_1, ...]

Data expressions

数据表达式 是访问特征数据的任何表达-即,使用数据的运营商之一的任何表达: get has id geometry-type properties ,或 feature-state 数据表达式允许特征的属性或状态来确定其外观。 它们可用于区分同一层中的要素并创建数据可视化。

{
    "circle-color": [
        "rgb",
        // red is higher when feature.properties.temperature is higher
        ["get", "temperature"],
        // green is always zero
        0,
        // blue is higher when feature.properties.temperature is lower
        ["-", 100, ["get", "temperature"]]
    ]
}

此示例使用 get 运算符获取 temperature 每个要素 值。 该值用于计算 rgb 运算符的 参数 ,根据红色,绿色和蓝色组件定义颜色。

允许使用数据表达式作为 filter 属性 的值 ,并将其作为大多数绘制和布局属性的值。 但是,某些绘制和布局属性尚不支持数据表达式。 每个属性的“SDK支持”表的“数据驱动样式”行指示支持级别。 <feature-state 仅允许在paint属性上 使用 运算符的 数据表达式

Camera expressions

一个 camera expression 是使用 zoom 运算符的 任何表达式 此类表达式允许图层的外观随地图的缩放级别而变化。 相机表达式可用于创建深度外观和控制数据密度。

{
    "circle-radius": [
        "interpolate", ["linear"], ["zoom"],
        // zoom is 5 (or less) -> circle radius will be 1px
        5, 1,
        // zoom is 10 (or greater) -> circle radius will be 5px
        10, 5
    ]
}

此示例使用 interpolate 运算符使用一组输入 - 输出对在缩放级别和圆形大小之间定义线性关系。 在这种情况下,表达式表示当缩放级别为5或更低时圆半径应为1像素,当缩放为10或以上时圆半径应为5像素。 在两者之间,半径将在1到5个像素之间进行线性插值

在可以使用表达式的任何地方允许相机表达式。 但是,当相机表达式用作布局或绘制属性的值时,它必须采用以下形式之一:

[ "interpolate", interpolation, ["zoom"], ... ]

要么:

[ "step", ["zoom"], ... ]

要么:

[
    "let",
    ... variable bindings...,
    [ "interpolate", interpolation, ["zoom"], ... ]
]

要么:

[
    "let",
    ... variable bindings...,
    [ "step", ["zoom"], ... ]
]

也就是说,在布局或绘制属性中, ["zoom"] 可能仅作为外部 interpolate step 表达式 的输入, 表达式中的此类 let 表达式。

在相机表达评估的时间中,布局和绘制属性之间存在重要差异。 每当缩放级别改变时,即使是小幅度的改变,也会重新评估绘制属性相机表达式。 例如,当地图在缩放级别4.1和4.6之间移动时,将连续重新评估绘图属性相机表达式。 另一方面,仅在整数缩放级别评估布局属性相机表达式。 当缩放从4.1变为4.6时, 不会 被重新评估 - 只有当它超过5或低于4时才会重新评估。

Composition

单个表达式可以使用数据运算符,摄像机运算符和其他运算符的混合。 这种复合表达式允许通过缩放级别 各个要素属性 的组合来确定图层的外观

{
    "circle-radius": [
        "interpolate", ["linear"], ["zoom"],
        // when zoom is 0, set each feature's circle radius to the value of its "rating" property
        0, ["get", "rating"],
        // when zoom is 10, set each feature's circle radius to four times the value of its "rating" property
        10, ["*", 4, ["get", "rating"]]
    ]
}

同时使用数据和摄像机运算符的表达式被视为数据表达式和摄像机表达式,并且必须遵守上述两者的限制。

Type system

表达式的输入参数及其结果值使用与 样式规范的其余部分 相同的 类型 :boolean,string,number,color和这些类型的数组。 此外,表达式是 类型安全的 表达式的 每次使用都具有已知的结果类型和必需的参数类型,并且SDK验证表达式的结果类型是否适合于使用它的上下文。 例如, filter 属性中 表达式的结果类型 必须是 布尔值 + 运算符 的参数 必须是 数值

使用要素数据时,SDK通常不会提前知道要素属性值的类型。 为了保持类型安全性,在评估数据表达式时,SDK将检查属性值是否适合上下文。 例如,如果 ["get", "feature-color"] circle-color 属性 使用表达式 ,SDK将验证 feature-color 每个要素 值是否为标识有效 颜色 的字符串 如果此检查失败,将以特定于SDK的方式(通常是日志消息)指示错误,并将使用该属性的默认值。

在大多数情况下,此验证将在需要的任何地方自动进行。 但是,在某些情况下,SDK可能无法从周围上下文自动确定数据表达式的预期结果类型。 例如,不清楚表达式 ["<", ["get", "a"], ["get", "b"]] 是否试图比较字符串或数值。 在这种情况下,您可以使用 类型断言 表达式运算符之一来指示数据表达式的预期类型: ["<", ["number", ["get", "a"]], ["number", ["get", "b"]]] 类型断言检查特征数据是否实际匹配数据表达式的预期类型。 如果此检查失败,则会产生错误并导致整个表达式回退到正在定义的属性的默认值。 断言运营商 array boolean number ,和 string

表达式仅执行一种隐式类型转换:在 期望 颜色 的上下文中使用的数据表达式将 颜色 的字符串表示转换为颜色值。 在其他情况下,如果你想类型之间的转换,你必须使用一个 类型转换 表达式运算符: to-boolean to-number to-string ,或 to-color 例如,如果您有一个以字符串格式存储数值的要素属性,并且您希望将这些值用作数值而不是字符串,则可以使用诸如的表达式 ["to-number", ["get", "property-name"]]

Expression reference

Types

提供本节中的表达式是为了测试和转换不同的数据类型,如字符串,数值和布尔值。

通常,这种测试和转换是不必要的,但在某些表达式中,某些子表达式的类型不明确,它们可能是必要的。 它们在您的要素数据类型不一致的情况下也很有用; 例如,您可以使用 to-number 以确保将 "1.5" (而不是 1.5 )的值视为数值。

array

断言输入是一个数组(可选择具有特定的项类型和长度)。 如果在计算输入表达式时,它不是断言类型,那么这个断言将导致整个表达式被中止。

["array", value]: array
["array", type: "string" | "number" | "boolean", value]: array<type>
["array",
    type: "string" | "number" | "boolean",
    N: number (literal),
    value
]: array<type, N>
boolean

断言输入值是布尔值。 如果提供了多个值,则按顺序计算每个值,直到获得布尔值。 如果没有输入是布尔值,则表达式是错误的。

["boolean", value]: boolean
["boolean", value, fallback: value, fallback: value, ...]: boolean
collator

返回一个 collator 用于依赖于语言环境的比较操作。 case-sensitive diacritic-sensitive 选项默认为 false locale 参数指定要使用的语言环境的IETF语言标记。 如果未提供,则使用默认语言环境。 如果请求的语言环境不可用, collator 则将使用系统定义的回退语言环境。 使用 resolved-locale 测试的现场备用行为的结果。

["collator",
    { "case-sensitive": boolean, "diacritic-sensitive": boolean, "locale": string }
]: collator
format

返回 formatted 包含注释的文本,以便在混合格式 text-field 条目中使用。 如果设置,则 text-font 参数将覆盖根布局属性指定的字体。 如果设置,则 font-scale 参数指定相对于 text-size 根布局属性中 指定的缩放系数

["format",
    input_1: string, options_1: { "font-scale": number, "text-font": array<string> },
    ...,
    input_n: string, options_n: { "font-scale": number, "text-font": array<string> }
]: formatted
literal

提供文字数组或对象值。

["literal", [...] (JSON array literal)]: array<T, N>
["literal", {...} (JSON object literal)]: Object
number

断言输入值是一个数值。 如果提供多个​​值,则按顺序评估每个值,直到获得数值。 如果没有输入是数值,则表达式是错误。

["number", value]: number
["number", value, fallback: value, fallback: value, ...]: number
object

断言输入值是对象。 如果提供了多个值,则按顺序评估每个值,直到获得对象。 如果没有输入是对象,则表达式是错误。

["object", value]: object
["object", value, fallback: value, fallback: value, ...]: object
string

断言输入值是字符串。 如果提供了多个值,则按顺序评估每个值,直到获得字符串。 如果没有输入是字符串,则表达式是错误的。

["string", value]: string
["string", value, fallback: value, fallback: value, ...]: string
to-boolean

将输入值转换为布尔值。 其结果是 false ,当接着输入是空字符串,0, , false null NaN ; 否则就是 true

["to-boolean", value]: boolean
to-color

将输入值转换为颜色。 如果提供了多个值,则按顺序评估每个值,直到获得第一次成功转换。 如果没有任何输入可以转换,则表达式是错误的。

["to-color", value, fallback: value, fallback: value, ...]: color
to-number

如果可能,将输入值转换为数值。 如果输入是 null false ,则结果为0.如果输入是 true ,则结果为1.如果输入是字符串,则将其转换为 ECMAScript “ToNumber Applied to the String Type”算法 所指定的数值 语言规范。 如果提供了多个值,则按顺序评估每个值,直到获得第一次成功转换。 如果没有任何输入可以转换,则表达式是错误的。

["to-number", value, fallback: value, fallback: value, ...]: number
to-string

将输入值转换为字符串。 如果是输入 null ,结果是 "" 如果输入是布尔值,则结果为 "true" "false" 如果输入是数值,则将其转换为 ECMAScript语言规范 “NumberToString”算法 所指定的字符串 如果输入是一种颜色,则将其转换为形式的字符串 "rgba(r,g,b,a)" ,其中 r ,, g b 为0到255之间的数值, a 范围从0到1.否则,输入将转换为指定格式的字符串。 JSON.stringify ECMAScript语言规范 功能。

["to-string", value]: string
typeof

返回描述给定值类型的字符串。

["typeof", value]: string

Feature data

feature-state

从当前要素的状态中检索属性值。 如果请求的属性不存在于功能的状态,则返回null。 要素的状态不是GeoJSON或矢量切片数据的一部分,必须以编程方式在每个要素上设置。 请注意, [“feature-state”] 只能与支持数据驱动样式的绘制属性一起使用。

["feature-state", string]: value
geometry-type

获取要素的几何类型:Point,MultiPoint,LineString,MultiLineString,Polygon,MultiPolygon。

["geometry-type"]: string
id

获取要素的ID(如果有)。

["id"]: value
properties

获取要素属性对象。 请注意,在某些情况下,直接使用 [“get”,“property_name”] 可能更有效

["properties"]: object

Lookup

at

从数组中检索项目。

["at", number, array]: ItemType
get

从当前要素的属性检索属性值,如果提供了第二个参数,则从另一个对象检索属性值。 如果缺少请求的属性,则返回null。

["get", string]: value
["get", string, object]: value
has

测试当前要素属性中是否存在属性值,如果提供了第二个参数,则测试另一个对象。

["has", string]: boolean
["has", string, object]: boolean
length

获取数组或字符串的长度。

["length", string | array | value]: number

Decision

本节中的表达式可用于向样式添加条件逻辑。 例如, 'case' 表达式提供基本的“if / then / else”逻辑,并 'match' 允许您将输入表达式的特定值映射到不同的输出表达式。

逻辑否定。 true 如果输入是 false ,并且 输入是 false 返回 true

["!", boolean]: boolean
!=

true 如果输入值不相等 false 返回 否则返回。 比较是严格类型的:不同运行时类型的值始终被视为不相等。 已知在解析时类型不同的情况被视为无效并将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

["!=", value, value]: boolean
["!=", value, value, collator]: boolean
<

true 如果第一个输入严格小于第二个输入则 返回 false 否则返回。 参数必须是字符串或两个数值; 如果在评估期间它们不是,则表达式评估会产生错误。 知道此约束在解析时不保持的情况被认为是有效的并且将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

["<", value, value]: boolean
["<", value, value, collator]: boolean
<=

true 如果第一个输入小于或等于第二个输入则 返回 false 否则返回。 参数必须是字符串或两个数值; 如果在评估期间它们不是,则表达式评估会产生错误。 知道此约束在解析时不保持的情况被认为是有效的并且将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

["<=", value, value]: boolean
["<=", value, value, collator]: boolean
==

true 如果输入值相等 false 返回 否则 返回 比较是严格类型的:不同运行时类型的值始终被视为不相等。 已知在解析时类型不同的情况被视为无效并将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

["==", value, value]: boolean
["==", value, value, collator]: boolean
>

true 如果第一个输入严格大于第二个输入则 返回 false 否则返回。 参数必须是字符串或两个数值; 如果在评估期间它们不是,则表达式评估会产生错误。 知道此约束在解析时不保持的情况被认为是有效的并且将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

[">", value, value]: boolean
[">", value, value, collator]: boolean
> =

true 如果第一个输入大于或等于第二个输入则 返回 false 否则返回。 参数必须是字符串或两个数值; 如果在评估期间它们不是,则表达式评估会产生错误。 知道此约束在解析时不保持的情况被认为是有效的并且将产生解析错误。 接受可选 collator 参数以控制依赖于区域设置的字符串比较。

[">=", value, value]: boolean
[">=", value, value, collator]: boolean
all

否则 返回 true 所有输入 按顺序评估输入,并且评估是短路的:一旦输入表达式求值 ,结果就是 并且不再评估其他输入表达式。 true false false false

["all", boolean, boolean]: boolean
["all", boolean, boolean, ...]: boolean
any

否则 返回 true 任何输入 按顺序评估输入,并且评估是短路的:一旦输入表达式求值 ,结果就是 并且不再评估其他输入表达式。 true false true true

["any", boolean, boolean]: boolean
["any", boolean, boolean, ...]: boolean
case

选择相应测试条件评估为true的第一个输出。

["case",
    condition: boolean, output: OutputType, condition: boolean, output: OutputType, ...,
    default: OutputType
]: OutputType
coalesce

依次计算每个表达式,直到获得第一个非空值,并返回该值。

["coalesce", OutputType, OutputType, ...]: OutputType
match

选择标签值与输入值匹配的输出,如果未找到匹配则选择回退值。 输入可以是任何表达式(例如 ["get", "building_type"] )。 每个标签必须是单个文字值或文字值数组(例如 "a" ["c", "b"] ),并且这些值必须是所有字符串或所有数值。 (值 "1" 并且 1 不能都是同一匹配表达式中的标签。)如果输入类型与标签的类型不匹配,则结果将是回退值。

["match",
    input: InputType (number or string),
    label_1: InputType | [InputType, InputType, ...], output_1: OutputType,
    label_n: InputType | [InputType, InputType, ...], output_n: OutputType, ...,
    default: OutputType
]: OutputType

Ramps, scales, curves

interpolate

通过在输入和输出值对之间进行插值(“停止”),产生连续,平滑的结果。 input 可以是任何数值表达式(例如, ["get", "population"] )。 停止输入必须是严格按升序排列的数值文字。 输出类型必须是 number array<number> ,或 color

插值类型:

  • ["linear"] :在一对停止之间线性插值,小于和略大于输入。
  • ["exponential", base] :在停靠点之间以指数方式插值,小于和大于输入。 base 控制输出增加的速率:较高的值使输出增加到更高的范围。 当值接近1时,输出线性增加。
  • ["cubic-bezier", x1, y1, x2, y2] :使用给定控制点定义的三次贝塞尔曲线进行插值。
["interpolate",
    interpolation: ["linear"] | ["exponential", base] | ["cubic-bezier", x1, y1, x2, y2 ],
    input: number,
    stop_input_1: number, stop_output_1: OutputType,
    stop_input_n: number, stop_output_n: OutputType, ...
]: OutputType (number, array<number>, or Color)
interpolate-hcl

通过在输入和输出值对之间进行插值(“停止”),产生连续,平滑的结果。 类似 interpolate ,但输出类型必须是 color ,并且插值在Hue-Chroma-Luminance颜色空间中执行。

["interpolate-hcl",
    interpolation: ["linear"] | ["exponential", base] | ["cubic-bezier", x1, y1, x2, y2 ],
    input: number,
    stop_input_1: number, stop_output_1: Color,
    stop_input_n: number, stop_output_n: Color, ...
]: Color
interpolate-lab

通过在输入和输出值对之间进行插值(“停止”),产生连续,平滑的结果。 类似 interpolate ,但输出类型必须是 color ,并且插值在CIELAB颜色空间中执行。

["interpolate-lab",
    interpolation: ["linear"] | ["exponential", base] | ["cubic-bezier", x1, y1, x2, y2 ],
    input: number,
    stop_input_1: number, stop_output_1: Color,
    stop_input_n: number, stop_output_n: Color, ...
]: Color
step

通过评估由输入和输出值对(“停止”)定义的分段常数函数,生成离散的步进结果。 input 可以是任何数值表达式(例如, ["get", "population"] )。 停止输入必须是严格按升序排列的数值文字。 返回小于输入的停止输出值,如果输入小于第一个停止,则返回第一个输入。

["step",
    input: number,
    stop_output_0: OutputType,
    stop_input_1: number, stop_output_1: OutputType,
    stop_input_n: number, stop_output_n: OutputType, ...
]: OutputType

Variable binding

let

将表达式绑定到命名变量,然后可以使用 [“var”,“variable_name”] 在结果表达式中引用它们

["let",
    string (alphanumeric literal), any, string (alphanumeric literal), any, ...,
    OutputType
]: OutputType
var

使用“let”引用变量绑定。

["var", previously bound variable name]: the type of the bound expression

String

concat

返回 string 由输入的串联组成的。 每个输入都转换为字符串,就像是 to-string

["concat", value, value, ...]: string
downcase

返回转换为小写的输入字符串。 遵循Unicode默认大小写转换算法和Unicode字符数据库中的区分大小写的大小写映射。

["downcase", string]: string
is-supported-script

返回 true 是否期望输入字符串清晰呈现。 返回 false 输入字符串是否包含无法呈现而没有潜在意义丧失的部分(例如,需要复杂文本整形的印度语脚本,或者如果 mapbox-gl-rtl-text 插件未使用,则为 从右到左的脚本 )。

["is-supported-script", string]: boolean
resolved-locale

返回提供的语言环境的IETF语言标记 collator 这可用于确定默认系统区域设置,或确定是否已成功加载请求的区域设置。

["resolved-locale", collator]: string
upcase

返回转换为大写的输入字符串。 遵循Unicode默认大小写转换算法和Unicode字符数据库中的区分大小写的大小写映射。

["upcase", string]: string

Color

rgb

从红色,绿色和蓝色分量创建颜色值,其范围必须介于0到255之间,alpha分量设置为1.如果任何分量超出范围,则表达式为错误。

["rgb", number, number, number]: color
rgba

从红色,绿色,蓝色组件创建颜色值,颜色值必须介于0到255之间,alpha组件必须介于0和1之间。如果任何组件超出范围,则表达式是错误。

["rgba", number, number, number, number]: color
to-rgba

返回一个包含输入颜色的红色,绿色,蓝色和alpha分量的四元素数组。

["to-rgba", color]: array<number, 4>

Math

-

对于两个输入,返回从第一个输入中减去第二个输入的结果。 对于单个输入,返回从0减去的结果。

["-", number, number]: number
["-", number]: number
*

返回输入的乘积。

["*", number, number, ...]: number
/

返回第二个输入的第一个输入的浮点除法的结果。

["/", number, number]: number

返回第一个输入的整数除法后的余数。

["%", number, number]: number
^

返回将第一个输入提升到第二个指定幂的结果。

["^", number, number]: number
+

返回输入的总和。

["+", number, number, ...]: number
abs

返回输入的绝对值。

["abs", number]: number
acos

返回输入的反余弦值。

["acos", number]: number
asin

返回输入的反正弦值。

["asin", number]: number
atan

返回输入的反正切值。

["atan", number]: number
ceil

返回大于或等于输入的最小整数。

["ceil", number]: number
cos

返回输入的余弦值。

["cos", number]: number
e

返回数学常数e。

["e"]: number
floor

返回小于或等于输入的最大整数。

["floor", number]: number
ln

返回输入的自然对数。

["ln", number]: number
ln2

返回数学常数ln(2)。

["ln2"]: number
log10

返回输入的十进制对数。

["log10", number]: number
log2

返回输入的基数 - 2对数。

["log2", number]: number
max

返回输入的最大值。

["max", number, number, ...]: number
min

返回输入的最小值。

["min", number, number, ...]: number
pi

返回数学常数pi。

["pi"]: number
round

将输入舍入为最接近的整数。 中途值从零开始舍入。 例如, ["round", -1.5] 计算结果为-2。

["round", number]: number
sin

返回输入的正弦值。

["sin", number]: number
sqrt

返回输入的平方根。

["sqrt", number]: number
tan

返回输入的正切值。

["tan", number]: number

Zoom

zoom

获取当前缩放级别。 请注意,在样式布局和绘画属性中, [“缩放”] 可能仅显示为顶级“步”或“插值”表达式的输入。

["zoom"]: number

Heatmap

heatmap-density

获取热图图层中像素的核密度估计值,该值是对特定像素周围拥挤的数据点的相对度量。 只能在 heatmap-color 酒店使用。

["heatmap-density"]: number
line-progress

获取渐变线的进度。 只能在 line-gradient 酒店使用。

["line-progress"]: number

Other

Function

可以将任何布局或绘制属性的值指定为 函数 函数允许您使用当前缩放级别和/或要素的属性更改地图要素的外观。

stops
必需( 身份 函数 除外 数组
函数根据输入和输出值定义。 一组输入值和一个输出值称为“停止”。 停止输出值必须是文字值(即不是函数或表达式),并且适用于属性。 例如, fill-color 属性中 使用的函数的停止输出值 必须是 颜色
property
可选 字符串
如果指定,该函数将使用指定的要素属性作为输入。 有关 更多信息, 请参见 缩放功能和属性功能
base
可选 号码 默认值为 1
插值曲线的指数基数。 它控制功能输出增加的速率。 较高的值使输出增加到更高的范围。 当值接近1时,输出线性增加。
type
可选 字符串 "identity" "exponential" "interval" ,或 "categorical"
"identity"
将输入作为输出返回的函数。
"exponential"
通过在停止之间进行插值来生成输出的函数,该函数仅小于且大于函数输入。 域(输入值)必须是数值,样式属性必须支持插值。 支持插值的样式属性标记为 ,“指数”符号和 指数 是这些属性的默认函数类型。
"interval"
一个函数,它返回stop的输出值,小于函数输入。 域(输入值)必须是数值。 任何样式属性都可以使用区间函数。 对于标有的属性 ,“interval”符号,这是默认的函数类型。
"categorical"
返回stop的输出值等于函数输入的函数。
default
当值不可用时,将用作后备函数的值。 它用于以下情况:
  • 在分类函数中,当特征值与任何停止域值不匹配时。
  • 在属性和缩放和属性函数中,当要素不包含指定属性的值时。
  • 在标识函数中,当特征值对样式属性无效时(例如,如果该函数用于 circle-color 属性,但feature属性值不是字符串或不是有效颜色)。
  • 在区间或指数属性和缩放和属性函数中,当特征值不是数值时。
如果未提供默认值,则在这些情况下使用样式属性的默认值。
colorSpace
可选 字符串 "rgb" "lab" "hcl"
内插颜色的颜色空间。 在像LAB和HCL这样的感知色彩空间中插值颜色倾向于产生看起来更一致的色彩斜坡,并且产生的色彩可以比在RGB空间中插入的色彩更容易区分。
"rgb"
使用RGB颜色空间插入颜色值
"lab"
使用LAB颜色空间插入颜色值。
"hcl"
使用HCL颜色空间插入颜色值,分别插入Hue,Chroma和Luminance通道。

缩放功能 允许地图特征的外观随地图的缩放级别而变化。 缩放功能可用于创建深度和控制数据密度的错觉。 每个停靠点都是一个包含两个元素的数组:第一个是缩放级别,第二个是函数输出值。

{
    "circle-radius": {
        "stops": [
            // zoom is 5 -> circle radius will be 1px
            [5, 1],
            // zoom is 10 -> circle radius will be 2px
            [10, 2]
        ]
    }
}

颜色 数值 数组 属性 的渲染值 在停靠点之间进行插值。 无法插入 布尔值 字符串 属性值,因此它们的渲染值仅在指定的停靠点处更改。

缩放函数为 布局 绘制 属性 呈现的方式之间存在重要差异 每当缩放级别改变时,连续地重新评估绘制属性,甚至是小数。 涂料性能的渲染值会发生变化,例如,作为地图缩放级别之间移动 4.1 4.6 另一方面,布局属性仅针对每个整数缩放级别计算一次。 要继续前面的例子:布局属性的渲染将 不会 缩放级别之间的变化 4.1 4.6 ,无论被指定为何种停止; 但在缩放级别 5 ,函数将根据函数重新评估,属性的渲染值将发生变化。 (您可以在布局属性缩放功能中包含小数缩放级别,它会影响生成的值;但是,渲染只会在整数缩放级别更改。)

属性函数 允许地图特征的外观随其属性而变化。 属性函数可用于在视觉上区分同一层内的特征类型或创建数据可视化。 每个停靠点都是一个包含两个元素的数组,第一个是属性输入值,第二个是函数输出值。 请注意,目前并非所有属性和平台都支持属性功能。

{
    "circle-color": {
        "property": "temperature",
        "stops": [
            // "temperature" is 0   -> circle color will be blue
            [0, 'blue'],
            // "temperature" is 100 -> circle color will be red
            [100, 'red']
        ]
    }
}

缩放和属性功能 允许地图特征的外观随其属性 缩放 而变化 每个停靠点都是一个包含两个元素的数组,第一个是具有属性输入值和缩放的对象,第二个是函数输出值。 请注意,对属性函数的支持尚未完成。

{
    "circle-radius": {
        "property": "rating",
        "stops": [
            // zoom is 0 and "rating" is 0 -> circle radius will be 0px
            [{zoom: 0, value: 0}, 0],

            // zoom is 0 and "rating" is 5 -> circle radius will be 5px
            [{zoom: 0, value: 5}, 5],

            // zoom is 20 and "rating" is 0 -> circle radius will be 0px
            [{zoom: 20, value: 0}, 0],

            // zoom is 20 and "rating" is 5 -> circle radius will be 20px
            [{zoom: 20, value: 5}, 20]
        ]
    }
}

Filter (deprecated syntax)

在样式规范的先前版本中, 使用下面记录的弃用语法定义 过滤器 虽然使用此语法定义的过滤器将继续有效,但我们建议使用更灵活的 表达式 语法。 下面的表达式语法和不推荐使用的语法不能在单个过滤器定义中混合使用。

Existential Filters

["has", key] 功能[键] 存在
["!has", key] 功能[键] 不存在

Comparison Filters

["==", key, value] 相等: 功能[键] =
["!=", key, value] 不等式: feature [key] value
[">", key, value] 大于: feature [key] > value
[">=", key, value] 大于或等于: feature [key]
["<", key, value] 小于: feature [key] < value
["<=", key, value] 小于等于: feature [key]

Set Membership Filters

["in", key, v0, ..., vn] 设置包含: feature [key] { v0 ,..., vn }
["!in", key, v0, ..., vn] 设置排除: 功能[键] { v0 ,..., vn }

Combining Filters

["all", f0, ..., fn] 逻辑 AND F0 ∧...∧ FN
["any", f0, ..., fn] 逻辑 OR F0 ∨...∨ FN
["none", f0, ..., fn] 逻辑 NOR :¬ F0 ∧...∧¬ FN

必须标识功能属性的字符串,或以下特殊键之一:

  • "$type" :要素类型。 此键可以与使用 "==" "!=" "in" ,和 "!in" 运营商。 可能的值是 "Point" "LineString" "Polygon"
  • "$id" :功能标识符。 此键可以与使用 "==" "!=" "has" "!has" "in" ,和 "!in" 运营商。

一个 (和 V0 ,..., VN 为集经营者)必须是一个 字符串 数值 布尔值 进行比较的属性值。

设置成员资格过滤器是一种紧凑而有效的方法,用于测试字段是否与多个值匹配。

比较和集合成员过滤器实现严格类型的比较; 例如,以下所有的评估为假: 0 < "1" 2 == "2" "true" in [true, false]

"all" "any" "none" 过滤运营商用于创建化合物的过滤器。 f0 ,..., fn 必须是过滤器表达式本身。

["==", "$type", "LineString"]

此过滤器要求 class 每个要素 属性等于“street_major”,“street_minor”或“street_limited”。

["in", "class", "street_major", "street_minor", "street_limited"]

组合过滤器“all”采用 class 其后 的三个其他过滤器,并且要求所有这些过滤器都包含一个要素:一个要素必须 等于“street_limited”,它 admin_level 必须大于或等于3,它的类型不能是多边形。 您可以将组合过滤器更改为“任意”,以允许包含与任何这些条件匹配的要素 - 多边形的要素,但具有不同的 class 值,依此类推。

[
    "all",
    ["==", "class", "street_limited"],
    [">=", "admin_level", 3],
    ["!in", "$type", "Polygon"]
]