Hi Andrea,
I'm the author of the commits that add a 'units' attribute to
StyleLayerDescriptor element.
https://github.com/qgis/QGIS/commit/b54b1598a6ba145a51aa266cde9282ae4d0378ad
https://github.com/qgis/QGIS/commit/f7ce8b94344e7a7dd12fac2a90bd84df30b7e82f
If you look at the code of these 2 commits, I didn't change anything
about QGIS SLD interpretation. In the QGIS core, a 'units' attribute is
used to defined the SLD default units for distance.
But I didn't add this 'units' attribute for QGIS and QGIS Server SLD
interpretation, I add these 'units' for GeoServer.
I didn't used uomScale because of SLD has to be used for any DPI screen.
So if a QGIS user made style in pixels, he has made the choice to have
different rendering in different DPI screen. But if the user made style
in mm on the screen, the stroke or line has to have the same size in
different DPI screen.
Can QGIS extend SLD by added it's own schema for defining units attribute ?
Can we used a VendorOption, to specify mm on the screen like in GeoServer ?
http://docs.geoserver.org/latest/en/user/styling/sld-extensions/label-obstacles.html
About uom in Symbolizer, I think QGIS has to add it like GeoServer
http://docs.geoserver.org/latest/en/user/styling/sld-extensions/uom.html#example
Regards,
René-Luc
Le 23/07/2016 à 14:53, Andrea Aime a écrit :
Hi,
I'm looking into improving the SLD export, and stumbled into a schema
violation
that, if fixed, may cause other regression.
In particular, the root element StyledLayerDescriptor contains a
"units" attribute that
is not part of the SLD/SE specification, and thus makes validation fail:
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" *units="mm"
*xsi:schemaLocation="http://www.opengis.net/sld
http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd"
xmlns:se="http://www.opengis.net/se">
...
</StyledLayerDescriptor>
It's in particular the units="mm" element. Checking the git history I
found it has been introduced by this commit:
---------------------
b54b159 - rldhont <[email protected] <mailto:[email protected]>>
23-ott-2015
[BUGFIX] Set default units to mm in exportSld
The default units in QgsMapRenderer is Millimeters. The default units
in SLD
is Pixel but exportSld does not convert all millimeters in pixels.
We notes this bug by comparing default QGS Server rendering and
rendering with
the SLD generated by QGIS.
To resolve it, we just have to add units to the document element.
---------------------
The above comments seems to suggest something is actually using that
attribute, but I'm not sure what.
Mind, GeoServer can parse the file the same, but if users try to
validate it (there is a validation button in the style editor), they
will get the following error:
"ine 2: cvc-complex-type.3.2.2: Attribute 'units' is not allowed to
appear in element 'StyledLayerDescriptor'."
Also, the attribute per se does nothing in a compliant client, since
SLD 1.1 lacks the very concept of "on screen unit", the uom allowed
are pixel (on screen), meter (on ground), feet (on ground).
A SLD export trying to be compliant should convert mm to pixels
assuming some DPI conversion factor (which means,
making many changes around... bummer). I see there is already a
uomScale in the conversion properties, but I see it's not
used for point symbol sizes (as the commit message says.. I actually
don't see it being used anywhere).
Would it be ok to remove that attribute and use uomScale to properly
adapt sizes from mm to px instead?
Cheers
Andrea
--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate.
Il loro utilizzo è consentito esclusivamente al destinatario del
messaggio, per le finalità indicate nel messaggio stesso. Qualora
riceviate questo messaggio senza esserne il destinatario, Vi preghiamo
cortesemente di darcene notizia via e-mail e di procedere alla
distruzione del messaggio stesso, cancellandolo dal Vostro sistema.
Conservare il messaggio stesso, divulgarlo anche in parte,
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità
diverse, costituisce comportamento contrario ai principi dettati dal
D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be
confidential or proprietary in nature or covered by the provisions of
privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New
Data Protection Code).Any use not in accord with its purpose, any
disclosure, reproduction, copying, distribution, or either
dissemination, either whole or partial, is strictly forbidden except
previous formal approval of the named addressee(s). If you are not the
intended recipient, please contact immediately the sender by
telephone, fax or e-mail and delete the information in this message
that has been received in error. The sender does not give any warranty
or accept liability as the content, accuracy or completeness of sent
messages and accepts no responsibility for changes made after they
were sent or for other risks which arise as a result of e-mail
transmission, viruses, etc.
-------------------------------------------------------
_______________________________________________
Qgis-developer mailing list
[email protected]
List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
Qgis-developer mailing list
[email protected]
List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer