@@ -61,11 +61,28 @@ void GraticuleCreator::generatePointGraticule(
61
61
mFields ,
62
62
QGis::WKBPoint,
63
63
&mSRS );
64
+ //
65
+ // Order our loop so that it goes from smallest to biggest
66
+ //
67
+ if (theXEndPoint < theXOrigin)
68
+ {
69
+ double myBuffer = theXOrigin;
70
+ theXOrigin = theXEndPoint;
71
+ theXEndPoint = myBuffer;
72
+ }
73
+ if (theYEndPoint < theYOrigin)
74
+ {
75
+ double myBuffer = theYOrigin;
76
+ theYOrigin = theYEndPoint;
77
+ theYEndPoint = myBuffer;
78
+ }
79
+
80
+
64
81
for (double i=theXOrigin;
65
82
i<=theXEndPoint;
66
83
i+=theXInterval)
67
84
{
68
- for (double j=- theYOrigin;
85
+ for (double j=theYOrigin;
69
86
j<=theYEndPoint;
70
87
j+=theYInterval)
71
88
{
@@ -82,6 +99,22 @@ void GraticuleCreator::generatePointGraticule(
82
99
QgsFeature myFeature;
83
100
myFeature.setTypeName (" WKBPoint" );
84
101
myFeature.setGeometry (mypPointGeometry);
102
+ if (i==theXOrigin && j==theYEndPoint) // labels for bottom right corner
103
+ {
104
+ myFeature.addAttribute (0 ,i);// "LabelX"
105
+ myFeature.addAttribute (1 ,j);// "LabelY"
106
+ myFeature.addAttribute (2 ,-20 );// "LabelOffsetX"
107
+ myFeature.addAttribute (3 ,-20 );// "LabelOffsetY"
108
+ myFeature.addAttribute (4 ,QString::number (i) + " ," + QString::number (j));// "Label"
109
+ }
110
+ else if (i==theXEndPoint && j==theYOrigin) // labels for top left corner
111
+ {
112
+ myFeature.addAttribute (0 ,i);// "LabelX"
113
+ myFeature.addAttribute (1 ,j);// "LabelY"
114
+ myFeature.addAttribute (2 ,20 );// "LabelOffsetX"
115
+ myFeature.addAttribute (3 ,20 );// "LabelOffsetY"
116
+ myFeature.addAttribute (4 ,QString::number (i) + " ," + QString::number (j));// "Label"
117
+ }
85
118
if (i==theXOrigin && j==theYOrigin) // labels for bottom left corner
86
119
{
87
120
myFeature.addAttribute (0 ,i);// "LabelX"
@@ -175,11 +208,26 @@ void GraticuleCreator::generatePolygonGraticule(
175
208
mFields ,
176
209
QGis::WKBPolygon,
177
210
&mSRS );
211
+ //
212
+ // Order our loop so that it goes from smallest to biggest
213
+ //
214
+ if (theXEndPoint < theXOrigin)
215
+ {
216
+ double myBuffer = theXOrigin;
217
+ theXOrigin = theXEndPoint;
218
+ theXEndPoint = myBuffer;
219
+ }
220
+ if (theYEndPoint < theYOrigin)
221
+ {
222
+ double myBuffer = theYOrigin;
223
+ theYOrigin = theYEndPoint;
224
+ theYEndPoint = myBuffer;
225
+ }
178
226
for (double i=theXOrigin;
179
227
i<=theXEndPoint;
180
228
i+=theXInterval)
181
229
{
182
- for (double j=- theYOrigin;
230
+ for (double j=theYOrigin;
183
231
j<=theYEndPoint;
184
232
j+=theYInterval)
185
233
{
0 commit comments