您的位置:首页 > 财经 > 产业 > 上海房产交易网站_html网页制作基础知识_新手怎么做销售_公司网站设计的内容有哪些

上海房产交易网站_html网页制作基础知识_新手怎么做销售_公司网站设计的内容有哪些

2025/4/29 10:35:00 来源:https://blog.csdn.net/where_yang/article/details/147561754  浏览:    关键词:上海房产交易网站_html网页制作基础知识_新手怎么做销售_公司网站设计的内容有哪些
上海房产交易网站_html网页制作基础知识_新手怎么做销售_公司网站设计的内容有哪些

1 需求及数据预处理

等高线图层在小比例尺下糊做一团,为了解决这个问题,研究了在不同比例尺下显示合适疏密程度的样式设置。在此做个总结。

已知等高线初始等高距为20米,因此可以将等高线大概分为三个层级:小比例尺按200米等高距显示,中等比例尺按100米等高距显示,大比例尺显示全部等高线。

在(postgis)数据库中运行如下sql:

UPDATE dgx SETlevel = CASEWHEN gao % 200 = 0 THEN '3'WHEN gao % 100 = 0 THEN '2'ELSE '1'
END;

运行之后,会将高程值能被200整除的level字段值设置为3,能被100整除的设置为2,其他为1。
于是,level值为3的数据是等高距为200的等高线,level值为3和2的数据是等高距为100的等高线。
(这种处理方式仅针对本项目数据)

2 样式总结

接下来再开始写样式:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><NamedLayer><Name>dgx-style</Name><UserStyle><Title>dgx line style</Title><FeatureTypeStyle><Rule><Name>Large</Name><MaxScaleDenominator>80000</MaxScaleDenominator><LineSymbolizer><Stroke><CssParameter name="stroke">#ff0000</CssParameter></Stroke></LineSymbolizer></Rule><Rule><Name>Medium</Name><MinScaleDenominator>80000</MinScaleDenominator><MaxScaleDenominator>500000</MaxScaleDenominator><ogc:Filter><ogc:Or><ogc:PropertyIsEqualTo><ogc:PropertyName>level</ogc:PropertyName><ogc:Literal>3</ogc:Literal></ogc:PropertyIsEqualTo><ogc:PropertyIsEqualTo><ogc:PropertyName>level</ogc:PropertyName><ogc:Literal>2</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Or></ogc:Filter><LineSymbolizer><Stroke><CssParameter name="stroke">#00ff00</CssParameter></Stroke></LineSymbolizer></Rule><Rule><Name>Small</Name><MinScaleDenominator>500000</MinScaleDenominator><ogc:Filter><ogc:PropertyIsEqualTo><ogc:PropertyName>level</ogc:PropertyName><ogc:Literal>3</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter><LineSymbolizer><Stroke><CssParameter name="stroke">#0000ff</CssParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer>
</StyledLayerDescriptor>

可以看到,sld代码中写了3条Rule,每个Rule都控制了显示的比例尺范围。
3条Rule从上到下的顺序是按照比例尺从大到小写的。

Rule中可以包含nameMaxScaleDenominator/MinScaleDenominatorFilterLineSymbolizer等标签。

其中,name指定了当前规则的名称,将在图例中标识;MaxScaleDenominator/MinScaleDenominator设置了当前规则的最大/最小比例尺,用于控制该样式的生效范围;Filter可用于过滤当前样式规则中显示的数据,不设置则展示所有数据;LineSymbolizer用于设置具体的线样式。

我将三种比例尺下的线设置成了不同的颜色,是为了在后面进行成果展示。项目中根据实际需求设置即可。

3 样式说明

以第二条样式Medium为例:

  • 控制显示的比例尺范围是从1:500000到1:80000之间:
<MinScaleDenominator>80000</MinScaleDenominator>
<MaxScaleDenominator>500000</MaxScaleDenominator>
  • 控制显示的数据是level字段的值等于3或等于2:
<ogc:Filter><ogc:Or><ogc:PropertyIsEqualTo><ogc:PropertyName>level</ogc:PropertyName><ogc:Literal>3</ogc:Literal></ogc:PropertyIsEqualTo><ogc:PropertyIsEqualTo><ogc:PropertyName>level</ogc:PropertyName><ogc:Literal>2</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Or>
</ogc:Filter>
  • 控制线样式为黄色:
<LineSymbolizer><Stroke><CssParameter name="stroke">#00ff00</CssParameter></Stroke>
</LineSymbolizer>

以此类推,其他两个样式便也可以理解了。

4 成果展示

图例如下:
在这里插入图片描述
各种比例尺下的效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 最后

我写的样式主要是为了解决不同比例尺下数据疏密情况,因此重点在用MinScaleDenominator、MaxScaleDenominator、Filter过滤数据。
如果需求是不同比例尺下数据样式的差异,就需要在LineSymbolizer中设置了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com