[QGIS-Developer] PYQGIS - OpenGL in QgsPluginLayer

Martin Dobias wonder.sk at gmail.com
Thu Mar 4 05:50:11 PST 2021


Hi Eric

I don't know about the S57 driver, best to ask on the gdal mailing list
about that...

As for QML format... you should not try to read/write raw XML data of QML
files: although that happens rarely, the format may change between versions
of QGIS as the schema is not guaranteed to be stable and it should be
considered as an implementation detail of QGIS. To prepare QML files, the
two preferred ways are:
1. GUI - use QGIS app to set up styling of the map layer
2. Python API - use PyQGIS library to create renderer (e.g.
QgsSingleSymbolRenderer) and symbol (e.g. QgsMarkerSymbol) objects and
assign them to a map layer
Then to save the QML file, you can again either use GUI (layer properties
dialog) or use Python API (QgsMapLayer.saveNamedStyle(...))

Regards
Martin


On Wed, Mar 3, 2021 at 7:02 PM Eric Younkin - NOAA Federal <
eric.g.younkin at noaa.gov> wrote:

> All,
>
> This is very useful, thanks.  The S57 driver does appear to give the
> layers by names that I recognize:
>
> INFO: Open of `C:\collab\dasktest\data_dir\13238_FFF.000'
>       using driver `S57' successful.
> 1: DSID (None)
> 2: LNDARE
> 3: LNDELV
> 4: SBDARE
> 5: UWTROC (Point)
>
> I've found the QML format spec here
> <https://docs.qgis.org/3.16/en/docs/user_manual/appendices/qgis_file_formats.html>,
> but is there any guidance on starting from scratch?  Thanks again for all
> the help.
>
> Eric
>
>
> On Wed, Mar 3, 2021 at 12:38 PM Martin Dobias <wonder.sk at gmail.com> wrote:
>
>> Hi Eric
>>
>> On Wed, Mar 3, 2021 at 5:48 PM Eric Younkin - NOAA Federal <
>> eric.g.younkin at noaa.gov> wrote:
>>
>>> Thanks for the quick reply.  This is for NOAA nautical chart symbology,
>>> following the s57/s52 spec.  You can see the symbology in the online viewer
>>> here <https://www.nauticalcharts.noaa.gov/ENCOnline/enconline.html>.
>>> It is basically a very complex spec that we generated for display in a
>>> wxPython widget a long time ago using GDAL 1.x commands.  S57 is already an
>>> existing OGR driver, although I do not know what exactly that driver does.
>>> I do know that it does not somehow generate the symbology of the data for
>>> you to then render.
>>>
>>> The vector data would be a combination of area/line/point features, and
>>> I don't think it would be a fit for the Mesh layer.
>>>
>>> We'd like to make this symbology available in QGIS, so that users can
>>> drag in a s57 file and view the chart.  You can use one of our WMS
>>> services, but having the file support would be useful.  Ideally in a plugin
>>> layer, so that I can also use it in our other apps that use PYQGIS QgsMapCanvas
>>> widgets.
>>>
>>
>> Thanks for more background. In this case the mesh layer indeed is not
>> useful. I have not worked with S57 before, but if there is OGR driver
>> available, it should be relatively easy to load and style the data without
>> a plugin layer. You do not need to rely on styling provided by OGR (if
>> provided at all). It looks like you only need to load the data as a bunch
>> of vector layers using OGR (one for each object type) and then apply
>> styling to those individual layers. Styling of vector layers in QGIS is
>> fairly strong, with features like rule-based rendering, data-defined
>> properties and geometry generators you can handle even very complex styles.
>> After preparing individual styles for vector layers, you can save them to
>> .qml files, and then your plugin would have just a simple task of taking
>> the input file(s), load layers and apply saved styles.
>>
>> I would resort to writing a custom plugin layer only when when all other
>> options fail - it is more complex, and generally the user experience is not
>> great.
>>
>> Regards
>> Martin
>>
>>
>
> --
> Eric Younkin
> Physical Scientist
> NOAA OCS, Hydrographic Systems and Technology Branch
> 1315 East-West Highway
> N/CS11, Room 6604
> Silver Spring, MD 20910
> Office: 240-847-8208
> Cell: 828-331-8197
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20210304/7974f167/attachment-0001.html>


More information about the QGIS-Developer mailing list