@@ -772,22 +772,25 @@ void QgsProjectParser::addLayers( QDomDocument &doc,
772
772
// min/max scale denominatormScaleBasedVisibility
773
773
if ( currentLayer->hasScaleBasedVisibility () )
774
774
{
775
- QString minScaleString = QString::number ( currentLayer->minimumScale () );
776
- QString maxScaleString = QString::number ( currentLayer->maximumScale () );
777
-
778
775
if ( version == " 1.1.1" )
779
776
{
777
+ double OGC_PX_M = 0.00028 ; // OGC referance pixel size in meter, also used by qgis
778
+ double SCALE_TO_SCALEHINT = OGC_PX_M * sqrt ( 2 );
779
+
780
780
QDomElement scaleHintElem = doc.createElement ( " ScaleHint" );
781
- scaleHintElem.setAttribute ( " min" , minScaleString );
782
- scaleHintElem.setAttribute ( " max" , maxScaleString );
781
+ scaleHintElem.setAttribute ( " min" , QString::number ( currentLayer-> minimumScale () * SCALE_TO_SCALEHINT ) );
782
+ scaleHintElem.setAttribute ( " max" , QString::number ( currentLayer-> maximumScale () * SCALE_TO_SCALEHINT ) );
783
783
layerElem.appendChild ( scaleHintElem );
784
784
}
785
785
else
786
786
{
787
+ QString minScaleString = QString::number ( currentLayer->minimumScale () );
787
788
QDomElement minScaleElem = doc.createElement ( " MinScaleDenominator" );
788
789
QDomText minScaleText = doc.createTextNode ( minScaleString );
789
790
minScaleElem.appendChild ( minScaleText );
790
791
layerElem.appendChild ( minScaleElem );
792
+
793
+ QString maxScaleString = QString::number ( currentLayer->maximumScale () );
791
794
QDomElement maxScaleElem = doc.createElement ( " MaxScaleDenominator" );
792
795
QDomText maxScaleText = doc.createTextNode ( maxScaleString );
793
796
maxScaleElem.appendChild ( maxScaleText );
0 commit comments