Показывать только отфильтрованные слои в легенде qgs Composer - PyQgis - PullRequest
0 голосов
/ 24 октября 2018

Я разрабатываю собственный плагин Qgis.Я хочу экспортировать холст карты в виде изображения вместе с легендой.Код для легенды:

legend = QgsComposerLegend(c)
legend.model().setLayerSet(mapRenderer.layerSet())
c.addItem(legend)

Проблема состоит в том, что он добавляет все слои в легенду карты, тогда как я хочу включить только слой, видимый в экстенте карты, в легенду карты.Я также попытался:

legend.setLegendFilterByMapEnabled(True)

Но это, похоже, не работает.Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 28 ноября 2018

Я решил эту проблему, разделив сюжет карты и сюжет легенды.Я имею в виду ;После создания и сохранения графика для графика карты, я создал еще один mapcanvas-рендеринг для графика легенды, и на этот раз я удалил ненужные слои с помощью метода removeMapLayer. Затем также сохраните график легенды.

QgsMapLayerRegistry.instance().removeMapLayer(the_unwanted_layer)

я надеюсь, что это поможет

...