QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
quickgui
qgsquickmaptoscreen.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsquickmaptoscreen.cpp
3
----------------------------------------------------
4
Date : 22.08.2018
5
Copyright : (C) 2018 by Denis Rouzaud
6
Email : denis (at) opengis.ch
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsquickmaptoscreen.h
"
17
18
#include "
qgspoint.h
"
19
20
#include "moc_qgsquickmaptoscreen.cpp"
21
22
QgsQuickMapToScreen::QgsQuickMapToScreen
( QObject *parent )
23
: QObject( parent )
24
{}
25
26
void
QgsQuickMapToScreen::setMapSettings
(
QgsQuickMapSettings
*
mapSettings
)
27
{
28
if
( mMapSettings ==
mapSettings
)
29
return
;
30
31
if
( mMapSettings )
32
{
33
disconnect( mMapSettings, &
QgsQuickMapSettings::extentChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
34
disconnect( mMapSettings, &
QgsQuickMapSettings::rotationChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
35
disconnect( mMapSettings, &
QgsQuickMapSettings::outputSizeChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
36
}
37
38
mMapSettings =
mapSettings
;
39
40
connect( mMapSettings, &
QgsQuickMapSettings::extentChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
41
connect( mMapSettings, &
QgsQuickMapSettings::rotationChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
42
connect( mMapSettings, &
QgsQuickMapSettings::outputSizeChanged
,
this
, &QgsQuickMapToScreen::transformPoint );
43
44
transformPoint();
45
transformDistance();
46
47
emit
mapSettingsChanged
();
48
}
49
50
QgsQuickMapSettings
*
QgsQuickMapToScreen::mapSettings
()
const
51
{
52
return
mMapSettings;
53
}
54
55
void
QgsQuickMapToScreen::setMapPoint
(
const
QgsPoint
&point )
56
{
57
if
( mMapPoint == point )
58
return
;
59
60
mMapPoint = point;
61
emit
mapPointChanged
();
62
transformPoint();
63
}
64
65
QgsPoint
QgsQuickMapToScreen::mapPoint
()
const
66
{
67
return
mMapPoint;
68
}
69
70
QPointF
QgsQuickMapToScreen::screenPoint
()
const
71
{
72
return
mScreenPoint;
73
}
74
75
void
QgsQuickMapToScreen::transformPoint()
76
{
77
if
( !mMapSettings )
78
{
79
mScreenPoint = QPointF();
80
}
81
else
82
{
83
mScreenPoint = mMapSettings->coordinateToScreen( mMapPoint );
84
}
85
emit
screenPointChanged
();
86
}
87
88
void
QgsQuickMapToScreen::setMapDistance
(
const
double
distance )
89
{
90
if
( mMapDistance == distance )
91
return
;
92
93
mMapDistance = distance;
94
emit
mapDistanceChanged
();
95
transformDistance();
96
}
97
98
double
QgsQuickMapToScreen::mapDistance
()
const
99
{
100
return
mMapDistance;
101
}
102
103
double
QgsQuickMapToScreen::screenDistance
()
const
104
{
105
return
mScreenDistance;
106
}
107
108
void
QgsQuickMapToScreen::transformDistance()
109
{
110
if
( !mMapSettings ||
qgsDoubleNear
( mMapDistance, 0.0 ) ||
qgsDoubleNear
( mMapSettings->
mapUnitsPerPoint
(), 0.0 ) )
111
{
112
mScreenDistance = 0.0;
113
}
114
else
115
{
116
mScreenDistance = mMapDistance / mMapSettings->mapUnitsPerPoint();
117
}
118
emit
screenDistanceChanged
();
119
}
QgsPoint
Point geometry type, with support for z-dimension and m-values.
Definition
qgspoint.h:53
QgsQuickMapSettings
Encapsulates QgsMapSettings class to offer settings of configuration of map rendering via QML propert...
Definition
qgsquickmapsettings.h:45
QgsQuickMapSettings::extentChanged
void extentChanged()
Geographical coordinates of the rectangle that should be rendered.
QgsQuickMapSettings::outputSizeChanged
void outputSizeChanged()
The size of the resulting map image.
QgsQuickMapSettings::mapUnitsPerPoint
double mapUnitsPerPoint
Returns the distance in geographical coordinates that equals to one point unit in the map.
Definition
qgsquickmapsettings.h:76
QgsQuickMapSettings::rotationChanged
void rotationChanged()
The rotation of the resulting map image, in degrees clockwise.
QgsQuickMapToScreen::mapPointChanged
void mapPointChanged()
Point in map coordinates.
QgsQuickMapToScreen::screenPoint
QPointF screenPoint
Point in screen coordinates (read-only).
Definition
qgsquickmaptoscreen.h:45
QgsQuickMapToScreen::mapSettings
QgsQuickMapSettings * mapSettings
Map settings used to define the map canvas CRS and detect any extent change.
Definition
qgsquickmaptoscreen.h:40
QgsQuickMapToScreen::mapDistanceChanged
void mapDistanceChanged()
Distance in map unit.
QgsQuickMapToScreen::QgsQuickMapToScreen
QgsQuickMapToScreen(QObject *parent=nullptr)
Creates a map to screen object.
Definition
qgsquickmaptoscreen.cpp:22
QgsQuickMapToScreen::mapSettingsChanged
void mapSettingsChanged()
Map settings used to define the map canvas CRS and detect any extent change.
QgsQuickMapToScreen::screenPointChanged
void screenPointChanged()
Point in screen coordinates (read-only).
QgsQuickMapToScreen::screenDistanceChanged
void screenDistanceChanged()
Distance in screen coordinates (read-only).
QgsQuickMapToScreen::setMapSettings
void setMapSettings(QgsQuickMapSettings *mapSettings)
Map settings used to define the map canvas CRS and detect any extent change.
Definition
qgsquickmaptoscreen.cpp:26
QgsQuickMapToScreen::screenDistance
double screenDistance
Distance in screen coordinates (read-only).
Definition
qgsquickmaptoscreen.h:50
QgsQuickMapToScreen::mapPoint
QgsPoint mapPoint
Point in map coordinates.
Definition
qgsquickmaptoscreen.h:43
QgsQuickMapToScreen::setMapDistance
void setMapDistance(const double distance)
Distance in map unit.
Definition
qgsquickmaptoscreen.cpp:88
QgsQuickMapToScreen::setMapPoint
void setMapPoint(const QgsPoint &point)
Point in map coordinates.
Definition
qgsquickmaptoscreen.cpp:55
QgsQuickMapToScreen::mapDistance
double mapDistance
Distance in map unit.
Definition
qgsquickmaptoscreen.h:48
qgsDoubleNear
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).
Definition
qgis.h:7743
qgspoint.h
qgsquickmaptoscreen.h
Generated on
for QGIS API Documentation by
1.17.0