缩放¶
不同的地方很常见 rules 在网络地图上以不同的缩放级别应用。
例如,在Roads图层上,您不希望在查看整个世界时显示每条道路。或者,您可能希望根据缩放级别设置相同要素的不同样式。例如:城市图层使用低缩放级别的点(“缩小”时)和具有较高缩放级别的多边形边界(“放大”)的点设置样式。
YSLD允许根据比例或缩放级别应用规则。可以按比例指定,也可以按比例定义缩放级别并按缩放级别指定。
警告
请注意,当图层包含在地图中时,如果地图与图层具有不同的坐标参考系,图层的比例(应用样式的地方)可能会发生不同的交互作用。
比例语法¶
在规则中使用scale条件参数的语法是::
rules:
- ...
scale: [<min>,<max>]
...
在哪里?
属性 |
必修的? |
描述 |
默认值 |
---|---|---|---|
|
是的 |
将应用规则的最小刻度(包括最小刻度)。值是一个数字,可以是十进制或整数。 |
不适用 |
|
是的 |
将应用规则的最大刻度(不包括)。值是一个数字,可以是十进制或整数。 |
不适用 |
备注
不能对这些值中的任何一个使用表达式。
使用文本字符串 min
和 max
表示没有上下比例边界的地方。例如,要表示比例小于 <max>
价值:
scale: [min,<max>]
表示比例大于或等于 <min>
价值:
scale: [<min>,max]
备注
在上述示例中, min
和 max
始终是文字,输入的内容与此完全相同,而 <min>
和 <max>
将替换为实际的标量值。
如果完全忽略scale参数,则规则将适用于所有比例。
比例示例¶
三条规则,均适用于不同规模:
rule:
- name: large_scale
scale: [min,100000]
symbolizers:
- line:
stroke-width: 3
stroke-color: '#0165CD'
- name: medium_scale
scale: [100000,200000]
symbolizers:
- line:
stroke-width: 2
stroke-color: '#0165CD'
- name: small_scale
scale: [200000,max]
symbolizers:
- line:
stroke-width: 1
stroke-color: '#0165CD'
此示例将显示以下行:
行程宽度为3,刻度小于100000 (
large_scale
)行程宽度为2,刻度在100000到200000之间。 (
medium_scale
)行程宽度为1,刻度大于200000 (
small_scale
)
根据上述规则,以下任意样本量表将映射到以下规则:
规模 |
规则 |
---|---|
|
|
|
|
|
|
|
|
|
|
注意边缘情况,因为 min
价值是包容性的 max
值是独占的。
科学量表符号¶
为了使理解更容易,减少出错的可能性,刻度值可以用科学的符号表示。
所以一个规模 500000000
,等于5×10^8(带8个零的5),可替换为 5e8
.
缩放比例关系¶
使用网络地图时,通常更方便地讨论缩放级别而不是缩放比例。缩放和缩放之间的关系取决于上下文。
例如,对于具有世界边界的epsg:4326,缩放级别0(完全缩小)对应于大约279541000的比例,每个后续缩放级别的比例值为比例值的一半。对于具有世界边界的epsg:3857(web-mercator),缩放级别0对应于大约559082000的比例,并且每个后续的缩放级别都有一半的比例值。
但由于缩放级别是离散的(0、1、2等),并且缩放级别是连续的,所以它实际上是一个与给定缩放级别相对应的缩放级别范围。
例如,如果您的缩放级别0对应1000000的缩放比例(并且每个后续缩放级别都是该比例的一半,这是常见的),则可以将规则的缩放比例值设置为:
scale: [750000,1500000]
(包括1000000)scale: [340000,750000]
(含50万元)scale: [160000,340000]
(包括250000)scale: [80000,160000]
(包括125000)等。
也要知道缩放比例和缩放比例之间的反比关系; 随着缩放级别的增加,缩放比例减小。
缩放语法¶
在某些有限的情况下,通过为预定义网格集指定缩放级别来指定缩放比例更为有用。这些网格集可以是geoserver中的任何预定义网格集。
在规则内,使用缩放级别的语法为:
rules:
- ...
zoom: [<min>, <max>]
...
在哪里?
属性 |
必修的? |
描述 |
默认值 |
---|---|---|---|
|
是的 |
将应用规则的最小缩放级别。值是整数。 |
不适用 |
|
是的 |
将应用规则的最大缩放级别。值是整数。 |
不适用 |
备注
不能对这些值中的任何一个使用表达式。
和比例一样,使用文字字符串 min
和 max
表示没有上下比例边界的地方。例如,表示缩放级别小于 <max>
价值:
zoom: [min,<max>]
表示缩放级别大于或等于 <min>
价值:
zoom: [<min>,max]
备注
在上述示例中, min
和 max
始终是文字,输入的内容与此完全相同,而 <min>
和 <max>
将替换为实际的标量值。
这个 scale
和 zoom
参数不应在规则中一起使用(但如果使用, scale
优先于 zoom
)
指定网格¶
虽然每个Web地图都可以有缩放级别,但缩放级别与其比例之间的特定关系取决于所使用的网格集(空间参考系统、范围等)。
因此,在ysld中指定缩放级别时,还应该指定网格。
这个 grid
参数应保持在ysld内容的顶部,在任何 要素样式 或 规则 .语法是::
grid:
name: <string>
在哪里?
财产 |
必修的? |
描述 |
默认值 |
---|---|---|---|
|
不 |
|
|
备注
由于许多Web地图使用“Web Mercator”(也称为epsg:3857或epsg:900913),如果没有,则假定为默认值。 grid
指定。
警告
由于多个网格集可以包含相同的SRS,我们建议使用epsg代码以外的代码命名自定义网格集。
缩放示例¶
默认网格集¶
鉴于web mercator(也称为epsg:3857或epsg:900913)的默认值,不需要 grid
名称,这将缩放级别定义为以下缩放级别(四舍五入到下面最接近的整数):
规模 |
缩放级别 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
命名网格集¶
对于现有网格集 WGS84
(通常称为 EPSG:4326
):
grid:
name: WGS84
这将缩放级别定义为以下缩放级别(四舍五入到下面最接近的整数):
规模 |
缩放级别 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
给定一个名为gridset的自定义 NYLongIslandFtUS
,由CRS定义 EPSG:2263 充分发挥其作用:
grid:
name: NYLongIslandFtUS
这将缩放级别定义为以下值(四舍五入到下面最接近的整数):
规模 |
缩放级别 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|