From 442cc281e18e2366c29831dbb90656e1d4d977b9 Mon Sep 17 00:00:00 2001 From: artemp Date: Fri, 26 Feb 2016 13:50:34 +0100 Subject: [PATCH 1/2] use `ST_MakeEnvelope` (ref #3317) --- plugins/input/pgraster/pgraster_datasource.cpp | 17 +++++------------ plugins/input/postgis/postgis_datasource.cpp | 17 +++++------------ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/plugins/input/pgraster/pgraster_datasource.cpp b/plugins/input/pgraster/pgraster_datasource.cpp index 451c74e52..e4fc32284 100644 --- a/plugins/input/pgraster/pgraster_datasource.cpp +++ b/plugins/input/pgraster/pgraster_datasource.cpp @@ -621,22 +621,15 @@ layer_descriptor pgraster_datasource::get_descriptor() const std::string pgraster_datasource::sql_bbox(box2d const& env) const { std::ostringstream b; - - if (srid_ > 0) - { - b << "ST_SetSRID("; - } - - b << "'BOX3D("; + b << "ST_MakeEnvelope("; b << std::setprecision(16); - b << env.minx() << " " << env.miny() << ","; - b << env.maxx() << " " << env.maxy() << ")'::box3d"; - + b << env.minx() << "," << env.miny() << ","; + b << env.maxx() << "," << env.maxy(); if (srid_ > 0) { - b << ", " << srid_ << ")"; + b << ", " << srid_; } - + b << ")"; return b.str(); } diff --git a/plugins/input/postgis/postgis_datasource.cpp b/plugins/input/postgis/postgis_datasource.cpp index d95aa3392..24e5c51df 100644 --- a/plugins/input/postgis/postgis_datasource.cpp +++ b/plugins/input/postgis/postgis_datasource.cpp @@ -513,22 +513,15 @@ layer_descriptor postgis_datasource::get_descriptor() const std::string postgis_datasource::sql_bbox(box2d const& env) const { std::ostringstream b; - - if (srid_ > 0) - { - b << "ST_SetSRID("; - } - - b << "'BOX3D("; + b << "ST_MakeEnvelope("; b << std::setprecision(16); - b << env.minx() << " " << env.miny() << ","; - b << env.maxx() << " " << env.maxy() << ")'::box3d"; - + b << env.minx() << "," << env.miny() << ","; + b << env.maxx() << "," << env.maxy(); if (srid_ > 0) { - b << ", " << srid_ << ")"; + b << ", " << srid_; } - + b << ")"; return b.str(); } From 63df9eecff6b5b418c638a9197836d139c79acf5 Mon Sep 17 00:00:00 2001 From: artemp Date: Fri, 26 Feb 2016 14:14:47 +0100 Subject: [PATCH 2/2] unconditionally emit the SRID via @pnorman (https://github.com/mapnik/mapnik/pull/3319#issuecomment-189263651) --- plugins/input/pgraster/pgraster_datasource.cpp | 8 ++------ plugins/input/postgis/postgis_datasource.cpp | 8 ++------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/plugins/input/pgraster/pgraster_datasource.cpp b/plugins/input/pgraster/pgraster_datasource.cpp index e4fc32284..bbd95d412 100644 --- a/plugins/input/pgraster/pgraster_datasource.cpp +++ b/plugins/input/pgraster/pgraster_datasource.cpp @@ -624,12 +624,8 @@ std::string pgraster_datasource::sql_bbox(box2d const& env) const b << "ST_MakeEnvelope("; b << std::setprecision(16); b << env.minx() << "," << env.miny() << ","; - b << env.maxx() << "," << env.maxy(); - if (srid_ > 0) - { - b << ", " << srid_; - } - b << ")"; + b << env.maxx() << "," << env.maxy() << ","; + b << srid_ << ")"; return b.str(); } diff --git a/plugins/input/postgis/postgis_datasource.cpp b/plugins/input/postgis/postgis_datasource.cpp index 24e5c51df..97d494f0d 100644 --- a/plugins/input/postgis/postgis_datasource.cpp +++ b/plugins/input/postgis/postgis_datasource.cpp @@ -516,12 +516,8 @@ std::string postgis_datasource::sql_bbox(box2d const& env) const b << "ST_MakeEnvelope("; b << std::setprecision(16); b << env.minx() << "," << env.miny() << ","; - b << env.maxx() << "," << env.maxy(); - if (srid_ > 0) - { - b << ", " << srid_; - } - b << ")"; + b << env.maxx() << "," << env.maxy() << ","; + b << srid_ << ")"; return b.str(); }