@@ -390,7 +390,13 @@ QgsSymbolLayerV2* QgsSimpleFillSymbolLayerV2::createFromSld( QDomElement &elemen
390
390
QPointF offset;
391
391
QgsSymbolLayerV2Utils::displacementFromSldElement ( element, offset );
392
392
393
+ QString uom = element.attribute ( QString ( " uom" ), " " );
394
+ offset.setX ( QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, offset.x () ) );
395
+ offset.setY ( QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, offset.y () ) );
396
+ borderWidth = QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, borderWidth );
397
+
393
398
QgsSimpleFillSymbolLayerV2* sl = new QgsSimpleFillSymbolLayerV2 ( color, fillStyle, borderColor, borderStyle, borderWidth );
399
+ sl->setOutputUnit ( QgsSymbolV2::Pixel );
394
400
sl->setOffset ( offset );
395
401
return sl;
396
402
}
@@ -2159,6 +2165,10 @@ QgsSymbolLayerV2* QgsSVGFillSymbolLayer::createFromSld( QDomElement &element )
2159
2165
2160
2166
QgsSymbolLayerV2Utils::lineFromSld ( graphicElem, penStyle, borderColor, borderWidth );
2161
2167
2168
+ QString uom = element.attribute ( QString ( " uom" ), " " );
2169
+ size = QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, size );
2170
+ borderWidth = QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, borderWidth );
2171
+
2162
2172
double angle = 0.0 ;
2163
2173
QString angleFunc;
2164
2174
if ( QgsSymbolLayerV2Utils::rotationFromSldElement ( graphicElem, angleFunc ) )
@@ -2170,6 +2180,7 @@ QgsSymbolLayerV2* QgsSVGFillSymbolLayer::createFromSld( QDomElement &element )
2170
2180
}
2171
2181
2172
2182
QgsSVGFillSymbolLayer* sl = new QgsSVGFillSymbolLayer ( path, size, angle );
2183
+ sl->setOutputUnit ( QgsSymbolV2::Pixel );
2173
2184
sl->setSvgFillColor ( fillColor );
2174
2185
sl->setSvgOutlineColor ( borderColor );
2175
2186
sl->setSvgOutlineWidth ( borderWidth );
@@ -3018,7 +3029,12 @@ QgsSymbolLayerV2* QgsLinePatternFillSymbolLayer::createFromSld( QDomElement &ele
3018
3029
offset = sqrt ( pow ( vectOffset.x (), 2 ) + pow ( vectOffset.y (), 2 ) );
3019
3030
}
3020
3031
3032
+ QString uom = element.attribute ( QString ( " uom" ), " " );
3033
+ size = QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, size );
3034
+ lineWidth = QgsSymbolLayerV2Utils::sizeInPixelsFromSldUom ( uom, lineWidth );
3035
+
3021
3036
QgsLinePatternFillSymbolLayer* sl = new QgsLinePatternFillSymbolLayer ();
3037
+ sl->setOutputUnit ( QgsSymbolV2::Pixel );
3022
3038
sl->setColor ( lineColor );
3023
3039
sl->setLineWidth ( lineWidth );
3024
3040
sl->setLineAngle ( angle );
0 commit comments