Permalink
Browse files

PostGIS vectors reduction, XML parameter driven (#1136)

  • Loading branch information...
Sandro Santilli
Sandro Santilli committed Apr 17, 2012
1 parent f76fde3 commit f7c5e693158741a7f850dc0de271ab62d6f7cefe
Showing with 22 additions and 1 deletion.
  1. +22 −1 plugins/input/postgis/postgis_datasource.cpp
@@ -606,8 +606,29 @@ featureset_ptr postgis_datasource::features(const query& q) const
throw mapnik::datasource_exception(s_error.str());
}
+ boost::optional<mapnik::boolean> simplify_opt =
+ params_.get<mapnik::boolean>("simplify", false);
+
+ bool simplify = simplify_opt && *simplify_opt;
+
std::ostringstream s;
- s << "SELECT ST_AsBinary(\"" << geometryColumn_ << "\") AS geom";
+ s << "SELECT ST_AsBinary(";
+
+ if (simplify) {
+ s << "ST_Simplify(";
+ }
+
+ s << "\"" << geometryColumn_ << "\"";
+
+ if (simplify) {
+ double px_gw = 1.0/boost::get<0>(q.resolution());
+ double px_gh = 1.0/boost::get<1>(q.resolution());
+
+ double tolerance = std::min(px_gw,px_gh) / 2;
+ s << ", " << tolerance << ")";
+ }
+
+ s << ") AS geom";
mapnik::context_ptr ctx = boost::make_shared<mapnik::context_type>();
std::set<std::string> const& props = q.property_names();

0 comments on commit f7c5e69

Please sign in to comment.