Hi Otto,

Here you go:https://github.com/qgis/QGIS/pull/42292

Let's hope that the tests do not fail due to the new rounding logic
(the old implementation was losing precision by taking the DPI from
the integer value of the paint device).



On Wed, Mar 17, 2021 at 8:29 AM Otto Dassau <[email protected]> wrote:
>
> Hi Alessandro,
>
> sorry, put it also here:
> https://nextcloud.gbd-consult.de/s/QRXAiQdABZGKiXK
>
> Regards,
> Otto
>
> On Wed, 17 Mar 2021 08:14:02 +0100
> Alessandro Pasotti <[email protected]> wrote:
>
> > Hi Otto,
> >
> > I would give it a look but credentials are required to download the test 
> > data:
> >
> > > The project file and data are in 
> > > https://gitlab.gbd-consult.de/gws/gws-dev/tree/master/data/shared 
> > > (poi_scaled.qgs and poi / subfolder).
> >
> >
> >
> >
> > On Wed, Mar 17, 2021 at 6:55 AM Otto Dassau <[email protected]> wrote:
> > >
> > > Dear Developers,
> > >
> > > i would like to describe a problem using QGIS WMS with defined scale 
> > > visibility for layers. We already spent quite some time on it and for us 
> > > it seems to be a wrong scale calculation in QGIS. But since we are not 
> > > sure we would like to ask, if someone, deeper in the code, can have a 
> > > look and, if it is the case, can provide a (payed) fix.
> > >
> > > To better describe the problem we provide a sample web project under 
> > > https://gws-dev.gbd-consult.de/project/scales_qgis/@753753,6661615,100000
> > >
> > > The "Bank" layer has a scale-dependent representation defined in QGIS 
> > > between 100000 - 80000, but is not rendered by QGIS at the scale 100000.
> > >
> > > QGIS server is called with these parameters:
> > >
> > > http://localhost:4000?
> > > layers=Bank%20100000-80000
> > > &map=%2Fdata%2Fshared%2Fpoi_scaled.qgs
> > > &transparent=True
> > > &bbox=748163.2561805135,6646683.920240255,767707.2561805135,6679247.920240255
> > > &width=698
> > > &height=1163
> > > &srs=EPSG%3A3857
> > > &format=image%2Fpng
> > > &request=GetMap
> > > &version=1.1.1
> > > &service=WMS
> > > &styles=
> > >
> > > The resolution (meter per pixel) results from bbox and width
> > >
> > > (767707.2561805135 - 748163.2561805135) / 698 = 28
> > >
> > > According to OGC specifications, 1px = 0.28 mm x 0.28 mm, i.e. the scale 
> > > here must be exactly 100000. But QGIS calculates it differently (excerpt 
> > > from the debug log):
> > >
> > > src/core/geometry/qgsrectangle.cpp:152 : (toString) [0ms] Extents : 
> > > 748163.2561805135337636,6646683.9202402550727129 : 
> > > 767707.2561805135337636,6679247.9202402550727129
> > > src/core/qgsmapsettings.cpp:222 : (updateDerived) [0ms] 
> > > 748163.2561805135337636,6646683.9202402550727129 : 
> > > 767707.2561805135337636,6679247.9202402550727129
> > > src/core/qgsmapsettings.cpp:223 : (updateDerived) [1ms] Adjusted map 
> > > units per pixel (x,y) : 28, 28
> > > src/core/qgsmapsettings.cpp:224 : (updateDerived) [0ms] Recalced pixmap 
> > > dimensions (x,y) : 698, 1163
> > > src/core/qgsmapsettings.cpp:225 : (updateDerived) [0ms] Scale (assuming 
> > > meters as map units) = 1:100314.96052759999292903
> > >
> > > The scale (with the same bbox / width) is calculated as "1: 100314", and 
> > > because that is greater than 100,000, the layer is not rendered by QGIS.
> > >
> > > We assume that there is a rounding error somewhere. As said we would be 
> > > happy if a QGIS dev could have a look. The project file and data are in 
> > > https://gitlab.gbd-consult.de/gws/gws-dev/tree/master/data/shared 
> > > (poi_scaled.qgs and poi / subfolder).
> > >
> > > Thanks a lot!
> > > Otto
> > >
> > > --
> > > Geoinformatikbüro Dassau GmbH
> > > Rethelstrasse 153
> > > D - 40237 Düsseldorf
> > > Tel: +49-211-69937750
> > > Mobil:  +49-171-4687540
> > > https://www.gbd-consult.de
> > >
> > > Registergericht: Amtsgericht Düsseldorf, HR B 74022
> > > Geschäftsführer: Otto Dassau
> > > _______________________________________________
> > > QGIS-Developer mailing list
> > > [email protected]
> > > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> > > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> >
> >
> >
> > --
> > Alessandro Pasotti
> > QCooperative:  www.qcooperative.net
> > ItOpen:   www.itopen.it
>
>
> --
> Geoinformatikbüro Dassau GmbH
> Rethelstrasse 153
> D - 40237 Düsseldorf
> Tel: +49-211-69937750
> Mobil:  +49-171-4687540
> https://www.gbd-consult.de
>
> Registergericht: Amtsgericht Düsseldorf, HR B 74022
> Geschäftsführer: Otto Dassau



--
Alessandro Pasotti
QCooperative:  www.qcooperative.net
ItOpen:   www.itopen.it
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to