【问题标题】:adding legend on GeoServer在 GeoServer 上添加图例
【发布时间】:2015-07-13 19:36:31
【问题描述】:

我是 GeoServer 的新手,我正在尝试在现有地图上添加图例。我不确定在哪里添加图例 XML 文件?

在 GeoServer 用户手册中,他们简要地谈到了图例,但不是很清楚:http://docs.geoserver.org/stable/en/user/advanced/wmsdecoration.html 我认为应该在 web 地图服务页面 (WMS) 中添加图例 XML 文件。但是我试图在页面上搜索诸如图例之类的关键字,但找不到。我在正确的方向吗?

【问题讨论】:

    标签: maps gis legend geoserver


    【解决方案1】:

    您指的是 WMS 覆盖装饰。

    在您在帖子中包含的链接 http://docs.geoserver.org/stable/en/user/advanced/wmsdecoration.html 中,它提供了模仿您引用的屏幕截图所需的说明。

    要在 GetMap 请求中使用装饰,管理员必须首先 配置装饰布局。这些布局存储在一个 GeoServer Data Directory 中名为 layouts 的子目录作为 XML 文件,每个布局一个文件。每个布局文件必须具有扩展名 .xml。 一旦定义了布局 foo.xml,用户可以通过添加来请求它 &format_options=layout:foo 到请求参数。

    本质上,你:

    1. 创建一个描述符文件,就像您的帖子中提供的那样
    2. 将此文件复制到存在于数据目录中的layouts 文件夹中 Geoserver(具体路径因安装而异)
    3. 使用查询字符串参数为 wms 层制作请求以指示 您想查看指定图层的服务器 覆盖。即&format_options=layout:foo 到请求参数。

    这会将叠加层嵌入到图层本身。这与 Jose 的回答形成对比,后者涉及额外的 HTTP 请求(可以在 <img href=""/> 标签中引用)。

    在任何一种情况下,图例组件都可以通过在图层请求中应用样式来影响。这些通常用 SLD 编码。有关这方面的信息,请here

    == 编辑 01 == 作为参考,数据目录的路径可以在这里找到: 这是安装geoserver的服务器上数据目录所在的路径。 Structure of Data Directory 链接详细介绍了此文件夹中的内容以及每个项目的用途。

    【讨论】:

    • 谢谢杰森!我在查找“布局”文件夹时遇到问题……它在 WMS 页面中吗?那里没有“布局”关键字……,
    • 该文件夹无法通过 web gui 访问。它在服务器文件系统中。寻找样本层所在的位置。如果您导航到状态页面,web gui 将告诉您该路径在哪里。在 2.6 服务器上,我有它的 host:portgeoserver/web/…
    • 服务器文件系统在哪里?我查找了示例层,但我没有看到服务器文件系统...抱歉,您发送给我的链接在我打开时显示为空白
    • 我已经编辑了我的答案。我希望这会有所帮助。您必须登录并编辑托管 geoserver 的服务器上的文件。无法通过 geoserver web ui 执行编辑布局目录所需的操作。
    • @Nathan Reese:很好。我相信这种叠加装饰技术仅适用于图层预览中的Single Tile 选项。在传单中,您将在查询字符串中将供应商参数 tiled 设置为 false,如下所述:docs.geoserver.org/latest/en/user/services/wms/vendor.html 以正确显示覆盖。如果不希望禁用平铺并且创建地理服务器的图例很重要 - 请考虑使用 GetLegendGraphic 获取图像并将其放置在您的应用程序中。
    【解决方案2】:

    我认为您正在寻找的请求是 GetLegendGraphic。通过此请求,您请求 Geoserver 返回与图层的默认 SLD 或请求中指定的 SLD 对应的图像。

    这是一个示例请求,您可以在 Geoserver 文档中找到:

    http://localhost:8080/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&LAYER=topp:states&legend_options=fontName:Times%20New%20Roman;fontAntiAliasing:true;fontColor:0x000033;fontSize:14;bgColor:0xFFFFEE;dpi:180

    有关更多信息以及您可以在请求中指定的所有参数: http://docs.geoserver.org/latest/en/user/services/wms/get_legend_graphic/legendgraphic.html

    如果您正在寻找获取 SLD 文件内容而不是图像以在应用程序中处理它的请求,则需要执行 GetStyle 请求。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多