#if POSTGIS_GDAL_VERSION > 18
RASTER_DEBUG(3, "Adjusting extent for GDAL > 1.8 by half the scale");
- src_env.MinX -= (_scale[0] / 2.);
- src_env.MaxX += (_scale[0] / 2.);
- src_env.MinY -= (_scale[1] / 2.);
- src_env.MaxY += (_scale[1] / 2.);
+
+ if (
+ FLT_EQ((src_env.MaxX - src_env.MinX), 0) ||
+ (wkbtype == wkbMultiPoint) ||
+ (wkbtype == wkbMultiLineString)
+ ) {
+ src_env.MinX -= (_scale[0] / 2.);
+ src_env.MaxX += (_scale[0] / 2.);
+ }
+
+ if (
+ FLT_EQ((src_env.MaxY - src_env.MinY), 0) ||
+ (wkbtype == wkbMultiPoint) ||
+ (wkbtype == wkbMultiLineString)
+ ) {
+ src_env.MinY -= (_scale[1] / 2.);
+ src_env.MaxY += (_scale[1] / 2.);
+ }
+
#else
RASTER_DEBUG(3, "Adjusting extent for GDAL <= 1.8 by the scale");
- src_env.MinX -= _scale[0];
- src_env.MaxX += _scale[0];
- src_env.MinY -= _scale[1];
- src_env.MaxY += _scale[1];
+
+ if (
+ FLT_EQ((src_env.MaxX - src_env.MinX), 0) ||
+ (wkbtype == wkbMultiPoint) ||
+ (wkbtype == wkbMultiLineString)
+ ) {
+ src_env.MinX -= _scale[0];
+ src_env.MaxX += _scale[0];
+ }
+
+ if (
+ FLT_EQ((src_env.MaxY - src_env.MinY), 0) ||
+ (wkbtype == wkbMultiPoint) ||
+ (wkbtype == wkbMultiLineString)
+ ) {
+ src_env.MinY -= _scale[1];
+ src_env.MaxY += _scale[1];
+ }
#endif
}
2.5|0|25|ST_LineString|f
2.5|0|26|ST_LineString|t
2.5|0|27|ST_LineString|t
-2.5|0|28|ST_LineString|t
+2.5|0|28|ST_LineString|f
2.5|0|29|ST_LineString|f
2.5|0|31|ST_Polygon|t
2.5|0|32|ST_Polygon|t
2.6|2|15|ST_MultiPoint|t
2.6|2|21|ST_LineString|t
2.6|2|22|ST_LineString|t
-2.6|2|23|ST_LineString|t
-2.6|2|24|ST_LineString|t
+2.6|2|23|ST_LineString|f
+2.6|2|24|ST_LineString|f
2.6|2|25|ST_LineString|t
-2.6|2|26|ST_LineString|t
+2.6|2|26|ST_LineString|f
2.6|2|27|ST_LineString|t
2.6|2|28|ST_LineString|t
2.6|2|29|ST_LineString|t