目录

上一个主题

5.6. 专题制图

下一个主题

5.8. 合并图层


5.7. 设置可见性

当您查看Google地图或其他web地图应用程序时,可以看到地图根据缩放级别更改其样式。 当你观察整个大陆时,符号很简单,地图上有一些特征。当您走近时,您可以看到更多标签, 主要道路更改其符号,次要道路出现。

这种方法允许我们在网络地图上插入大量信息,同时避免产生几乎不可读的标签和符号群。 作为一个例子,您可以考虑一个地籍图,其中包含所有美国地块,并带有显示所有者的标签。 当你观察整个国家时,如果没有几千英寸宽的显示器,就不可能显示所有这些信息! 一个好的方法是在较小的范围内显示国家的边界、主要道路和地点,避免显示地块, 直到你不太靠近看到一个县。

使用SLD构建这样一个地图的方法是使用过滤器。我们将在下一节中试用它们。

5.7.1. 行动时间——加强主题路线图

在上一节中,我们设计了一个主题路线图。这是一张漂亮的地图,但它缺少可供出版的东西。 作为一个用户,您将期望根据道路的分类以不同的比例绘制道路。SLD有元素来定义必须应用规则的缩放范围; 它们被调用 MinScaleDenominator 和 MaxScaleDenominator . 让我们用它们!

1.拿着 RoadsThematic.xml 文件,复制到 RoadsThematicScale.xml , 然后在文本编辑器中编辑新文件。

2.转到第9行并替换 Name 具有以下代码段的元素:

<Name>RoadsThematicScale</Name>

3.转到第11行并替换 书名 具有以下代码段的元素:

<Title>Geoserver Beginners Guide: Roads thematic map with scale ranges</Title>

4.我们希望州际公路以任何规模出现,所以我们离开第一个 Rule 不变。 联邦公路将仅以1:10000000的比例和更近的距离出现。 转到第50行,在 滤波器 章节:

<MaxScaleDenominator>10000000</MaxScaleDenominator>

5.转到第74行,添加比例条件过滤器,使国道仅从1:1500000比例可见:

<MaxScaleDenominator>1500000</MaxScaleDenominator>

6.其他和在建道路只能从1:500000的比例尺上看到。

转到第98行和第122行,将比例条件过滤器添加为:

<MaxScaleDenominator>500000</MaxScaleDenominator>

7.保存文档并将其上载到GeoServer中的样式编辑器。

8.点击 Validate 检查你是否拼错了什么。当它没有返回错误时, 单击 提交 按钮。

9.现在去 Data | layers 部分并单击 10m_roads_north_america 图层打开图层属性窗体。

10.Go to the Style section and add RoadsThematicScale to the Selected Styles list. Click on the Save button. 转到 Style 部分,然后将 CountriesGraphics 添加到 Selected Styles 列表中。 单击“保存”按钮。

11.Open the Layer Preview map and zoom to scale 1:12,000,000. Open the controls and select the RoadsThematicScale style from the drop-down list.

当地图重新绘制时,你可以看到许多道路消失了。

image152

图 5.26 image152

放大以更近一点,您将看到出现其他道路类。 按1:376000比例绘制所有道路,如前一示例所示。

image153

图 5.27 image153

刚刚发生了什么?

通过设置要素类的比例范围,可以使路线图更具可读性。 设置比例尺范围是一个强大的工具,而且它几乎总是在地图中所必需的, 除非您正在用少量的特征组成地图。使用scale range非常简单; 只需将其添加到规则中。

此外 MaxScaleDenominator ,还有一个元素要设置缩放范围, MinScaleDenominator . 将它们一起使用,可以定义必须应用规则的上下比例。 可以为具有不同比例范围的同一图层定义两个规则;这样, 当用户放大或缩小时,应用于要素的符号将更改。