mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-06 00:07:29 -04:00
Added option to disable mm units in maprenderer (e.g. for third party apps). Not yet exposed to GUI because of feature freeze
git-svn-id: http://svn.osgeo.org/qgis/trunk@9283 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
17d69a13df
commit
5638905dc0
@ -50,6 +50,8 @@ QgsMapRenderer::QgsMapRenderer()
|
||||
|
||||
mProjectionsEnabled = FALSE;
|
||||
mDestCRS = new QgsCoordinateReferenceSystem( GEOEPSG_ID, QgsCoordinateReferenceSystem::EPSG ); //WGS 84
|
||||
|
||||
mOutputUnits = QgsMapRenderer::MM;
|
||||
}
|
||||
|
||||
QgsMapRenderer::~QgsMapRenderer()
|
||||
@ -238,7 +240,11 @@ void QgsMapRenderer::render( QPainter* painter )
|
||||
//use the specified dpi and not those from the paint device
|
||||
//because sometimes QPainter units are in a local coord sys (e.g. in case of QGraphicsScene)
|
||||
double sceneDpi = mScaleCalculator->dpi();
|
||||
double scaleFactor = sceneDpi / 25.4; //units should always be mm
|
||||
double scaleFactor = 1.0;
|
||||
if(mOutputUnits == QgsMapRenderer::MM)
|
||||
{
|
||||
scaleFactor = sceneDpi / 25.4;
|
||||
}
|
||||
double rasterScaleFactor = ( thePaintDevice->logicalDpiX() + thePaintDevice->logicalDpiY() ) / 2.0 / sceneDpi;
|
||||
mRenderContext.setScaleFactor( scaleFactor );
|
||||
mRenderContext.setRasterScaleFactor( rasterScaleFactor );
|
||||
|
@ -44,6 +44,14 @@ class CORE_EXPORT QgsMapRenderer : public QObject
|
||||
|
||||
public:
|
||||
|
||||
/**Output units for pen width and point marker width/height*/
|
||||
enum OUTPUT_UNITS
|
||||
{
|
||||
MM,
|
||||
PIXEL
|
||||
//MAP_UNITS probably supported in future versions
|
||||
};
|
||||
|
||||
//! constructor
|
||||
QgsMapRenderer();
|
||||
|
||||
@ -112,6 +120,10 @@ class CORE_EXPORT QgsMapRenderer : public QObject
|
||||
//! returns CRS ID of destination spatial reference system
|
||||
const QgsCoordinateReferenceSystem& destinationSrs();
|
||||
|
||||
void setOutputUnits(OUTPUT_UNITS u){mOutputUnits = u;}
|
||||
|
||||
OUTPUT_UNITS outputUnits() const {return mOutputUnits;}
|
||||
|
||||
//! returns current extent of layer set
|
||||
QgsRect fullExtent();
|
||||
|
||||
@ -205,6 +217,9 @@ class CORE_EXPORT QgsMapRenderer : public QObject
|
||||
|
||||
//!Encapsulates context of rendering
|
||||
QgsRenderContext mRenderContext;
|
||||
|
||||
//!Output units
|
||||
OUTPUT_UNITS mOutputUnits;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user