使用GetLegendGraphic的传单中的图例标题

时间:2018-03-28 13:21:18

标签: javascript leaflet legend title geoserver

有人可以解释一下如何使用GetLegendGraphic为Geoserver中的图层定义javascript / leaflet中的图例标题吗?我尝试了很多东西,比如:

  1. Here我尝试在各个图层的Geoserver Style部分制作此规则。

  2. Here我也找到了很好的讨论但不是真正的解决方案。

  3. 同时阅读this,我基本上只需要这个简单的文字作为"美国人口"在示例中。

  4. 我还考虑在Geoserver目录中使用装饰标签定义它,如here所述,但我的安装目的地中没有子目录布局。
  5. This听起来很简单,但我想使用Geoserver生成的Legend,因为效果非常好。
  6. 我还尝试在请求中简单地编写"...&legend_options=title:"LEGEND"...""legendTitle:true"或类似的变体,但它也不起作用。这是我的代码:

    var legend = L.control({position: 'bottomleft'});
    legend.onAdd = function (map) {
            div.innerHTML +=
            '<img src="http://localhost:8080/geoserver/WORKSPACE/wms?REQUEST=GetLegendGraphic&VERSION=1.1.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&LAYER=WORKSPACE:Layer_NAME&legend_options=forceLabels:on&fontName:Arial;fontSize=14" alt="legend" width="145" height="130">';
        return div;
        };
    

    一般情况下Geoserver没有显示图例标题会有问题吗?请帮助我,这显然很简单的事情并不令人烦恼:S

1 个答案:

答案 0 :(得分:0)

图例标题取自您使用decorators时显示的图层的标题。您需要创建一个layouts目录并在那里创建一个简单的xml文件。

但是,无法为GetLegendGraphic请求添加标题。由于您知道图层的标题,因此您可以使用JavaScript在您选择的位置以您选择的字体添加它。有关详细信息,请参阅邮件列表中的discussion