Skip to content

Commit a283a63

Browse files
zoomScale and zoomPoint doesn't consider map rotation (#6046)
1 parent 82750e4 commit a283a63

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

mapscript/swiginc/mapzoom.i

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@
7373
dY = dfDeltaY/((double)height);
7474
dfGeoPosX = poGeorefExt->minx + dX * (double)poPixPos->x;
7575
dfGeoPosY = poGeorefExt->maxy - dY * (double)poPixPos->y;
76+
77+
if (self->gt.rotation_angle != 0) {
78+
dfGeoPosX = self->gt.geotransform[0] + self->gt.geotransform[1] * (double)poPixPos->x + self->gt.geotransform[2] * (double)poPixPos->y;
79+
dfGeoPosY = self->gt.geotransform[3] + self->gt.geotransform[4] * (double)poPixPos->x + self->gt.geotransform[5] * (double)poPixPos->y;
80+
}
7681

7782
/* --- -------------------------------------------------------- */
7883
/* zoom in */
@@ -427,6 +432,11 @@
427432
dY = dfDeltaY/((double)height);
428433
dfGeoPosX = poGeorefExt->minx + dX * (double)poPixPos->x;
429434
dfGeoPosY = poGeorefExt->maxy - dY * (double)poPixPos->y;
435+
436+
if (self->gt.rotation_angle != 0) {
437+
dfGeoPosX = self->gt.geotransform[0] + self->gt.geotransform[1] * (double)poPixPos->x + self->gt.geotransform[2] * (double)poPixPos->y;
438+
dfGeoPosY = self->gt.geotransform[3] + self->gt.geotransform[4] * (double)poPixPos->x + self->gt.geotransform[5] * (double)poPixPos->y;
439+
}
430440

431441
/* ------------------------------------------------------------ */
432442
/* Calculate new extents based on the scale. */

0 commit comments

Comments
 (0)