diff --git a/bindings/python/mapnik_datasource.cpp b/bindings/python/mapnik_datasource.cpp index 3eb61cadfe..35a7a09d2d 100644 --- a/bindings/python/mapnik_datasource.cpp +++ b/bindings/python/mapnik_datasource.cpp @@ -177,11 +177,11 @@ void export_datasource() .value("Raster",mapnik::datasource::Raster) ; - enum_("DataGeometryType") - .value("Point",mapnik::datasource::Point) - .value("LineString",mapnik::datasource::LineString) - .value("Polygon",mapnik::datasource::Polygon) - .value("Collection",mapnik::datasource::Collection) + enum_("DataGeometryType") + .value("Point",mapnik::datasource_geometry_t::Point) + .value("LineString",mapnik::datasource_geometry_t::LineString) + .value("Polygon",mapnik::datasource_geometry_t::Polygon) + .value("Collection",mapnik::datasource_geometry_t::Collection) ; class_, diff --git a/bindings/python/mapnik_python.cpp b/bindings/python/mapnik_python.cpp index a65120a43b..b4ef3a92c9 100644 --- a/bindings/python/mapnik_python.cpp +++ b/bindings/python/mapnik_python.cpp @@ -196,7 +196,7 @@ struct agg_renderer_visitor_1 { agg_renderer_visitor_1(mapnik::Map const& m, double scale_factor, unsigned offset_x, unsigned offset_y) : m_(m), scale_factor_(scale_factor), offset_x_(offset_x), offset_y_(offset_y) {} - + template void operator() (T & pixmap) { @@ -222,7 +222,7 @@ struct agg_renderer_visitor_2 agg_renderer_visitor_2(mapnik::Map const &m, std::shared_ptr detector, double scale_factor, unsigned offset_x, unsigned offset_y) : m_(m), detector_(detector), scale_factor_(scale_factor), offset_x_(offset_x), offset_y_(offset_y) {} - + template void operator() (T & pixmap) { @@ -249,7 +249,7 @@ struct agg_renderer_visitor_3 agg_renderer_visitor_3(mapnik::Map const& m, mapnik::request const& req, mapnik::attributes const& vars, double scale_factor, unsigned offset_x, unsigned offset_y) : m_(m), req_(req), vars_(vars), scale_factor_(scale_factor), offset_x_(offset_x), offset_y_(offset_y) {} - + template void operator() (T & pixmap) { @@ -279,7 +279,7 @@ struct agg_renderer_visitor_4 mapnik::layer const& layer, std::set& names) : m_(m), scale_factor_(scale_factor), offset_x_(offset_x), offset_y_(offset_y), layer_(layer), names_(names) {} - + template void operator() (T & pixmap) { @@ -1056,7 +1056,7 @@ BOOST_PYTHON_MODULE(_mapnik) python_optional(); python_optional >(); python_optional(); - python_optional(); + python_optional(); python_optional(); python_optional(); python_optional(); diff --git a/include/mapnik/attribute.hpp b/include/mapnik/attribute.hpp index 410ef861d8..65b87b9dd3 100644 --- a/include/mapnik/attribute.hpp +++ b/include/mapnik/attribute.hpp @@ -26,7 +26,7 @@ // mapnik #include #include -#include +#include // stl #include #include @@ -53,7 +53,7 @@ struct geometry_type_attribute template V value(F const& f) const { - return static_cast(new_geometry::geometry_type(f.get_geometry())); + return static_cast(util::to_ds_type(f.get_geometry())); } }; diff --git a/include/mapnik/datasource.hpp b/include/mapnik/datasource.hpp index 06eccdc4ac..afc5b456df 100644 --- a/include/mapnik/datasource.hpp +++ b/include/mapnik/datasource.hpp @@ -32,6 +32,7 @@ #include #include #include +#include // stl #include @@ -68,14 +69,6 @@ class MAPNIK_DECL datasource : private util::noncopyable Raster }; - enum geometry_t : std::uint8_t { - Unknown = 0, - Point = 1, - LineString = 2, - Polygon = 3, - Collection = 4 - }; - datasource (parameters const& params) : params_(params) {} @@ -112,7 +105,7 @@ class MAPNIK_DECL datasource : private util::noncopyable // default implementation without context use features method return features(q); } - virtual boost::optional get_geometry_type() const = 0; + virtual boost::optional get_geometry_type() const = 0; virtual featureset_ptr features(query const& q) const = 0; virtual featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const = 0; virtual box2d envelope() const = 0; diff --git a/include/mapnik/datasource_geometry_type.hpp b/include/mapnik/datasource_geometry_type.hpp new file mode 100644 index 0000000000..ada1d196d5 --- /dev/null +++ b/include/mapnik/datasource_geometry_type.hpp @@ -0,0 +1,39 @@ +/***************************************************************************** + * + * This file is part of Mapnik (c++ mapping toolkit) + * + * Copyright (C) 2015 Artem Pavlenko + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + *****************************************************************************/ + +#ifndef MAPNIK_DATASOURCE_GEOMETRY_TYPE_HPP +#define MAPNIK_DATASOURCE_GEOMETRY_TYPE_HPP + +namespace mapnik { + +enum datasource_geometry_t : std::uint8_t { + Unknown = 0, + Point = 1, + LineString = 2, + Polygon = 3, + Collection = 4 +}; + +} + + +#endif // MAPNIK_DATASOURCE_GEOMETRY_TYPE_HPP diff --git a/include/mapnik/expression_grammar.hpp b/include/mapnik/expression_grammar.hpp index 0641e5f005..3dd5fc410f 100644 --- a/include/mapnik/expression_grammar.hpp +++ b/include/mapnik/expression_grammar.hpp @@ -29,7 +29,7 @@ #include #include #include -#include +//#include // boost #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" @@ -114,14 +114,10 @@ struct geometry_types : qi::symbols geometry_types() { add - ("unknown", static_cast(new_geometry::geometry_types::Unknown)) - ("point", static_cast(new_geometry::geometry_types::Point)) - ("linestring", static_cast(new_geometry::geometry_types::LineString)) - ("polygon",static_cast(new_geometry::geometry_types::Polygon)) - ("multipoint",static_cast(new_geometry::geometry_types::MultiPoint)) - ("multilinestring",static_cast(new_geometry::geometry_types::MultiLineString)) - ("multipolygon",static_cast(new_geometry::geometry_types::MultiPolygon)) - ("geometrycollection",static_cast(new_geometry::geometry_types::GeometryCollection)) + ("point", 1) + ("linestring", 2) + ("polygon",3) + ("collection",4) ; } }; diff --git a/include/mapnik/memory_datasource.hpp b/include/mapnik/memory_datasource.hpp index 93d970008e..83fdba63cc 100644 --- a/include/mapnik/memory_datasource.hpp +++ b/include/mapnik/memory_datasource.hpp @@ -43,7 +43,7 @@ class MAPNIK_DECL memory_datasource : public datasource virtual featureset_ptr features(query const& q) const; virtual featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const; virtual box2d envelope() const; - virtual boost::optional get_geometry_type() const; + virtual boost::optional get_geometry_type() const; virtual layer_descriptor get_descriptor() const; // void push(feature_ptr feature); diff --git a/include/mapnik/util/geometry_to_ds_type.hpp b/include/mapnik/util/geometry_to_ds_type.hpp index ac67ed86d0..8b985def15 100644 --- a/include/mapnik/util/geometry_to_ds_type.hpp +++ b/include/mapnik/util/geometry_to_ds_type.hpp @@ -20,13 +20,13 @@ * *****************************************************************************/ -#ifndef MAPNIK_GEOMETRY_TO_DS_TYPE -#define MAPNIK_GEOMETRY_TO_DS_TYPE +#ifndef MAPNIK_GEOMETRY_TO_DS_TYPE_HPP +#define MAPNIK_GEOMETRY_TO_DS_TYPE_HPP // mapnik #include #include -#include +#include #include // boost #include @@ -37,54 +37,54 @@ namespace detail { struct datasource_geometry_type { - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::geometry_empty const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::geometry_empty const&) const { - return mapnik::datasource::Unknown; + return mapnik::datasource_geometry_t::Unknown; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::point const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::point const&) const { - return mapnik::datasource::Point; + return mapnik::datasource_geometry_t::Point; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::line_string const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::line_string const&) const { - return mapnik::datasource::LineString; + return mapnik::datasource_geometry_t::LineString; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::polygon const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::polygon const&) const { - return mapnik::datasource::Polygon; + return mapnik::datasource_geometry_t::Polygon; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::multi_point const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::multi_point const&) const { - return mapnik::datasource::Point; + return mapnik::datasource_geometry_t::Point; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::multi_line_string const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::multi_line_string const&) const { - return mapnik::datasource::LineString; + return mapnik::datasource_geometry_t::LineString; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::multi_polygon const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::multi_polygon const&) const { - return mapnik::datasource::Polygon; + return mapnik::datasource_geometry_t::Polygon; } - mapnik::datasource::geometry_t operator () (mapnik::new_geometry::geometry_collection const&) const + mapnik::datasource_geometry_t operator () (mapnik::new_geometry::geometry_collection const&) const { - return mapnik::datasource::Collection; + return mapnik::datasource_geometry_t::Collection; } }; } // detail -static void to_ds_type(mapnik::new_geometry::geometry const& geom, boost::optional & result) +static inline mapnik::datasource_geometry_t to_ds_type(mapnik::new_geometry::geometry const& geom) { - result = util::apply_visitor(detail::datasource_geometry_type(), geom); + return util::apply_visitor(detail::datasource_geometry_type(), geom); } }} -#endif // MAPNIK_GEOMETRY_TO_DS_TYPE +#endif // MAPNIK_GEOMETRY_TO_DS_TYPE_HPP diff --git a/plugins/input/csv/csv_datasource.cpp b/plugins/input/csv/csv_datasource.cpp index fca2abab4c..a142c0ae02 100644 --- a/plugins/input/csv/csv_datasource.cpp +++ b/plugins/input/csv/csv_datasource.cpp @@ -937,20 +937,20 @@ mapnik::layer_descriptor csv_datasource::get_descriptor() const return desc_; } -boost::optional csv_datasource::get_geometry_type() const +boost::optional csv_datasource::get_geometry_type() const { - boost::optional result; + boost::optional result; int multi_type = 0; unsigned num_features = features_.size(); for (unsigned i = 0; i < num_features && i < 5; ++i) { - mapnik::util::to_ds_type(features_[i]->get_geometry(),result); + result = mapnik::util::to_ds_type(features_[i]->get_geometry()); if (result) { int type = static_cast(*result); if (multi_type > 0 && multi_type != type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } multi_type = type; diff --git a/plugins/input/csv/csv_datasource.hpp b/plugins/input/csv/csv_datasource.hpp index c82d949089..e26c4379e3 100644 --- a/plugins/input/csv/csv_datasource.hpp +++ b/plugins/input/csv/csv_datasource.hpp @@ -52,7 +52,7 @@ class csv_datasource : public mapnik::datasource mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; mapnik::layer_descriptor get_descriptor() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; template void parse_csv(T & stream, std::string const& escape, diff --git a/plugins/input/gdal/gdal_datasource.cpp b/plugins/input/gdal/gdal_datasource.cpp index dcd5920743..187d6aa0bf 100644 --- a/plugins/input/gdal/gdal_datasource.cpp +++ b/plugins/input/gdal/gdal_datasource.cpp @@ -201,9 +201,9 @@ box2d gdal_datasource::envelope() const return extent_; } -boost::optional gdal_datasource::get_geometry_type() const +boost::optional gdal_datasource::get_geometry_type() const { - return boost::optional(); + return boost::optional(); } layer_descriptor gdal_datasource::get_descriptor() const diff --git a/plugins/input/gdal/gdal_datasource.hpp b/plugins/input/gdal/gdal_datasource.hpp index 96d5b64c53..f2403c32dd 100644 --- a/plugins/input/gdal/gdal_datasource.hpp +++ b/plugins/input/gdal/gdal_datasource.hpp @@ -52,7 +52,7 @@ class gdal_datasource : public mapnik::datasource mapnik::featureset_ptr features(mapnik::query const& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; private: GDALDataset* open_dataset() const; diff --git a/plugins/input/geojson/geojson_datasource.cpp b/plugins/input/geojson/geojson_datasource.cpp index 11c7292f2b..9bde41da34 100644 --- a/plugins/input/geojson/geojson_datasource.cpp +++ b/plugins/input/geojson/geojson_datasource.cpp @@ -302,22 +302,22 @@ mapnik::layer_descriptor geojson_datasource::get_descriptor() const return desc_; } -boost::optional geojson_datasource::get_geometry_type() const +boost::optional geojson_datasource::get_geometry_type() const { - boost::optional result; + boost::optional result; int multi_type = 0; if (cache_features_) { unsigned num_features = features_.size(); for (unsigned i = 0; i < num_features && i < 5; ++i) { - mapnik::util::to_ds_type(features_[i]->get_geometry(),result); + result = mapnik::util::to_ds_type(features_[i]->get_geometry()); if (result) { int type = static_cast(*result); if (multi_type > 0 && multi_type != type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } multi_type = type; @@ -356,13 +356,13 @@ boost::optional geojson_datasource::get_geometry { throw std::runtime_error("Failed to parse geojson feature"); } - mapnik::util::to_ds_type(feature->get_geometry(),result); + result = mapnik::util::to_ds_type(feature->get_geometry()); if (result) { int type = static_cast(*result); if (multi_type > 0 && multi_type != type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } multi_type = type; diff --git a/plugins/input/geojson/geojson_datasource.hpp b/plugins/input/geojson/geojson_datasource.hpp index 0e5eac2377..02f607f4f7 100644 --- a/plugins/input/geojson/geojson_datasource.hpp +++ b/plugins/input/geojson/geojson_datasource.hpp @@ -94,7 +94,7 @@ class geojson_datasource : public mapnik::datasource mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; mapnik::layer_descriptor get_descriptor() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; template void parse_geojson(Iterator start, Iterator end); template diff --git a/plugins/input/occi/occi_datasource.cpp b/plugins/input/occi/occi_datasource.cpp index 5521ee8067..fcfe785787 100644 --- a/plugins/input/occi/occi_datasource.cpp +++ b/plugins/input/occi/occi_datasource.cpp @@ -443,9 +443,9 @@ box2d occi_datasource::envelope() const } -boost::optional occi_datasource::get_geometry_type() const +boost::optional occi_datasource::get_geometry_type() const { - return boost::optional(); + return boost::optional(); } layer_descriptor occi_datasource::get_descriptor() const diff --git a/plugins/input/occi/occi_datasource.hpp b/plugins/input/occi/occi_datasource.hpp index 8601fb4de6..27151ff43a 100644 --- a/plugins/input/occi/occi_datasource.hpp +++ b/plugins/input/occi/occi_datasource.hpp @@ -54,7 +54,7 @@ class occi_datasource : public mapnik::datasource mapnik::featureset_ptr features(mapnik::query const& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/ogr/ogr_datasource.cpp b/plugins/input/ogr/ogr_datasource.cpp index 532131d3c4..fa2550ac6c 100644 --- a/plugins/input/ogr/ogr_datasource.cpp +++ b/plugins/input/ogr/ogr_datasource.cpp @@ -390,9 +390,9 @@ box2d ogr_datasource::envelope() const return extent_; } -boost::optional ogr_datasource::get_geometry_type() const +boost::optional ogr_datasource::get_geometry_type() const { - boost::optional result; + boost::optional result; if (dataset_ && layer_.is_valid()) { OGRLayer* layer = layer_.layer(); @@ -417,7 +417,7 @@ boost::optional ogr_datasource::get_geometry_typ result.reset(mapnik::datasource::Polygon); break; case wkbGeometryCollection: - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); break; case wkbNone: case wkbUnknown: @@ -452,7 +452,7 @@ boost::optional ogr_datasource::get_geometry_typ result.reset(mapnik::datasource::Polygon); break; case wkbGeometryCollection: - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); break; default: break; diff --git a/plugins/input/ogr/ogr_datasource.hpp b/plugins/input/ogr/ogr_datasource.hpp index 853e2f447b..ddd74b717d 100644 --- a/plugins/input/ogr/ogr_datasource.hpp +++ b/plugins/input/ogr/ogr_datasource.hpp @@ -54,7 +54,7 @@ class ogr_datasource : public mapnik::datasource mapnik::featureset_ptr features(mapnik::query const& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/osm/osm_datasource.cpp b/plugins/input/osm/osm_datasource.cpp index 4dd4c348ed..3f52897c9d 100644 --- a/plugins/input/osm/osm_datasource.cpp +++ b/plugins/input/osm/osm_datasource.cpp @@ -153,7 +153,7 @@ box2d osm_datasource::envelope() const return extent_; } -boost::optional osm_datasource::get_geometry_type() const +boost::optional osm_datasource::get_geometry_type() const { - return boost::optional(mapnik::datasource::Collection); + return boost::optional(mapnik::datasource_geometry_t::Collection); } diff --git a/plugins/input/osm/osm_datasource.hpp b/plugins/input/osm/osm_datasource.hpp index 2662dedecb..3a2f0aff07 100644 --- a/plugins/input/osm/osm_datasource.hpp +++ b/plugins/input/osm/osm_datasource.hpp @@ -60,7 +60,7 @@ class osm_datasource : public datasource featureset_ptr features(const query& q) const; featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const; box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/pgraster/pgraster_datasource.cpp b/plugins/input/pgraster/pgraster_datasource.cpp index 7a144dca04..9e393bcbb2 100644 --- a/plugins/input/pgraster/pgraster_datasource.cpp +++ b/plugins/input/pgraster/pgraster_datasource.cpp @@ -357,7 +357,7 @@ pgraster_datasource::pgraster_datasource(parameters const& params) { pgraster_overview ov = pgraster_overview(); - ov.schema = rs->getValue("sch"); + ov.schema = rs->getValue("sch"); ov.table = rs->getValue("tab"); ov.column = rs->getValue("col"); ov.scale = atof(rs->getValue("scl")); @@ -1201,7 +1201,7 @@ box2d pgraster_datasource::envelope() const return extent_; } -boost::optional pgraster_datasource::get_geometry_type() const +boost::optional pgraster_datasource::get_geometry_type() const { - return boost::optional(); + return boost::optional(); } diff --git a/plugins/input/pgraster/pgraster_datasource.hpp b/plugins/input/pgraster/pgraster_datasource.hpp index dc012c84ce..9d1931ffca 100644 --- a/plugins/input/pgraster/pgraster_datasource.hpp +++ b/plugins/input/pgraster/pgraster_datasource.hpp @@ -85,7 +85,7 @@ class pgraster_datasource : public datasource featureset_ptr features(query const& q) const; featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/postgis/postgis_datasource.cpp b/plugins/input/postgis/postgis_datasource.cpp index 5700163503..7cb528bac6 100644 --- a/plugins/input/postgis/postgis_datasource.cpp +++ b/plugins/input/postgis/postgis_datasource.cpp @@ -1033,9 +1033,9 @@ box2d postgis_datasource::envelope() const return extent_; } -boost::optional postgis_datasource::get_geometry_type() const +boost::optional postgis_datasource::get_geometry_type() const { - boost::optional result; + boost::optional result; CnxPool_ptr pool = ConnectionManager::instance().getPool(creator_.id()); if (pool) @@ -1070,17 +1070,17 @@ boost::optional postgis_datasource::get_geometry g_type = rs->getValue("type"); if (boost::algorithm::contains(g_type, "line")) { - result.reset(mapnik::datasource::LineString); + result.reset(mapnik::datasource_geometry_t::LineString); return result; } else if (boost::algorithm::contains(g_type, "point")) { - result.reset(mapnik::datasource::Point); + result.reset(mapnik::datasource_geometry_t::Point); return result; } else if (boost::algorithm::contains(g_type, "polygon")) { - result.reset(mapnik::datasource::Polygon); + result.reset(mapnik::datasource_geometry_t::Polygon); return result; } else // geometry @@ -1121,26 +1121,26 @@ boost::optional postgis_datasource::get_geometry if (boost::algorithm::icontains(data, "line")) { g_type = "linestring"; - result.reset(mapnik::datasource::LineString); + result.reset(mapnik::datasource_geometry_t::LineString); } else if (boost::algorithm::icontains(data, "point")) { g_type = "point"; - result.reset(mapnik::datasource::Point); + result.reset(mapnik::datasource_geometry_t::Point); } else if (boost::algorithm::icontains(data, "polygon")) { g_type = "polygon"; - result.reset(mapnik::datasource::Polygon); + result.reset(mapnik::datasource_geometry_t::Polygon); } else // geometry { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } if (! prev_type.empty() && g_type != prev_type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } prev_type = g_type; diff --git a/plugins/input/postgis/postgis_datasource.hpp b/plugins/input/postgis/postgis_datasource.hpp index 0fb8e11ad0..7537bf6260 100644 --- a/plugins/input/postgis/postgis_datasource.hpp +++ b/plugins/input/postgis/postgis_datasource.hpp @@ -74,7 +74,7 @@ class postgis_datasource : public datasource featureset_ptr features(query const& q) const; featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/python/python_datasource.cpp b/plugins/input/python/python_datasource.cpp index f100d67c97..dc132fd31c 100644 --- a/plugins/input/python/python_datasource.cpp +++ b/plugins/input/python/python_datasource.cpp @@ -163,9 +163,9 @@ mapnik::box2d python_datasource::envelope() const return box; } -boost::optional python_datasource::get_geometry_type() const +boost::optional python_datasource::get_geometry_type() const { - using return_type = boost::optional; + using return_type = boost::optional; try { @@ -182,7 +182,7 @@ boost::optional python_datasource::get_geometry_ return return_type(); } long geom_type_integer = boost::python::extract(py_geometry_type); - return mapnik::datasource::geometry_t(geom_type_integer); + return mapnik::datasource_geometry_t(geom_type_integer); } catch ( boost::python::error_already_set ) { diff --git a/plugins/input/python/python_datasource.hpp b/plugins/input/python/python_datasource.hpp index 599f4c60b3..e6239c7229 100644 --- a/plugins/input/python/python_datasource.hpp +++ b/plugins/input/python/python_datasource.hpp @@ -41,7 +41,7 @@ class python_datasource : public mapnik::datasource mapnik::box2d envelope() const; // mandatory: optionally return the overal geometry type of the datasource - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; // mandatory: return the layer descriptor mapnik::layer_descriptor get_descriptor() const; diff --git a/plugins/input/raster/raster_datasource.cpp b/plugins/input/raster/raster_datasource.cpp index b70b6f25a6..e1a7c29660 100644 --- a/plugins/input/raster/raster_datasource.cpp +++ b/plugins/input/raster/raster_datasource.cpp @@ -171,9 +171,9 @@ mapnik::box2d raster_datasource::envelope() const return extent_; } -boost::optional raster_datasource::get_geometry_type() const +boost::optional raster_datasource::get_geometry_type() const { - return boost::optional(); + return boost::optional(); } layer_descriptor raster_datasource::get_descriptor() const diff --git a/plugins/input/raster/raster_datasource.hpp b/plugins/input/raster/raster_datasource.hpp index 435f8e5c7e..0cb7ad45f1 100644 --- a/plugins/input/raster/raster_datasource.hpp +++ b/plugins/input/raster/raster_datasource.hpp @@ -51,7 +51,7 @@ class raster_datasource : public mapnik::datasource mapnik::featureset_ptr features(const mapnik::query& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; bool log_enabled() const; diff --git a/plugins/input/rasterlite/rasterlite_datasource.cpp b/plugins/input/rasterlite/rasterlite_datasource.cpp index b851bebd35..f370f19d0d 100644 --- a/plugins/input/rasterlite/rasterlite_datasource.cpp +++ b/plugins/input/rasterlite/rasterlite_datasource.cpp @@ -168,9 +168,9 @@ box2d rasterlite_datasource::envelope() const return extent_; } -boost::optional rasterlite_datasource::get_geometry_type() const +boost::optional rasterlite_datasource::get_geometry_type() const { - return boost::optional(); + return boost::optional(); } layer_descriptor rasterlite_datasource::get_descriptor() const diff --git a/plugins/input/rasterlite/rasterlite_datasource.hpp b/plugins/input/rasterlite/rasterlite_datasource.hpp index df6c03d911..dcb1a1319e 100644 --- a/plugins/input/rasterlite/rasterlite_datasource.hpp +++ b/plugins/input/rasterlite/rasterlite_datasource.hpp @@ -52,7 +52,7 @@ class rasterlite_datasource : public mapnik::datasource mapnik::featureset_ptr features(mapnik::query const& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/shape/shape_datasource.cpp b/plugins/input/shape/shape_datasource.cpp index dbf8edd4fd..152e107a46 100644 --- a/plugins/input/shape/shape_datasource.cpp +++ b/plugins/input/shape/shape_datasource.cpp @@ -301,13 +301,13 @@ box2d shape_datasource::envelope() const return extent_; } -boost::optional shape_datasource::get_geometry_type() const +boost::optional shape_datasource::get_geometry_type() const { #ifdef MAPNIK_STATS mapnik::progress_timer __stats__(std::clog, "shape_datasource::get_geometry_type"); #endif - boost::optional result; + boost::optional result; switch (shape_type_) { case shape_io::shape_point: @@ -317,21 +317,21 @@ boost::optional shape_datasource::get_geometry_t case shape_io::shape_multipointm: case shape_io::shape_multipointz: { - result.reset(mapnik::datasource::Point); + result.reset(mapnik::datasource_geometry_t::Point); break; } case shape_io::shape_polyline: case shape_io::shape_polylinem: case shape_io::shape_polylinez: { - result.reset(mapnik::datasource::LineString); + result.reset(mapnik::datasource_geometry_t::LineString); break; } case shape_io::shape_polygon: case shape_io::shape_polygonm: case shape_io::shape_polygonz: { - result.reset(mapnik::datasource::Polygon); + result.reset(mapnik::datasource_geometry_t::Polygon); break; } default: diff --git a/plugins/input/shape/shape_datasource.hpp b/plugins/input/shape/shape_datasource.hpp index 6d0ec2e7de..586496b87b 100644 --- a/plugins/input/shape/shape_datasource.hpp +++ b/plugins/input/shape/shape_datasource.hpp @@ -60,7 +60,7 @@ class shape_datasource : public datasource featureset_ptr features(query const& q) const; featureset_ptr features_at_point(coord2d const& pt, double tol = 0) const; box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; layer_descriptor get_descriptor() const; private: void init(shape_io& shape); diff --git a/plugins/input/sqlite/sqlite_datasource.cpp b/plugins/input/sqlite/sqlite_datasource.cpp index 12f5142ea6..cc9a898b48 100644 --- a/plugins/input/sqlite/sqlite_datasource.cpp +++ b/plugins/input/sqlite/sqlite_datasource.cpp @@ -418,13 +418,13 @@ box2d sqlite_datasource::envelope() const return extent_; } -boost::optional sqlite_datasource::get_geometry_type() const +boost::optional sqlite_datasource::get_geometry_type() const { #ifdef MAPNIK_STATS mapnik::progress_timer __stats__(std::clog, "sqlite_datasource::get_geometry_type"); #endif - boost::optional result; + boost::optional result; if (dataset_) { // get geometry type by querying first features @@ -453,13 +453,13 @@ boost::optional sqlite_datasource::get_geometry_ { continue; } - mapnik::util::to_ds_type(geom,result); + result = mapnik::util::to_ds_type(geom); if (result) { int type = static_cast(*result); if (multi_type > 0 && multi_type != type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } multi_type = type; diff --git a/plugins/input/sqlite/sqlite_datasource.hpp b/plugins/input/sqlite/sqlite_datasource.hpp index 4461c962e8..ae21326673 100644 --- a/plugins/input/sqlite/sqlite_datasource.hpp +++ b/plugins/input/sqlite/sqlite_datasource.hpp @@ -55,7 +55,7 @@ class sqlite_datasource : public mapnik::datasource mapnik::featureset_ptr features(mapnik::query const& q) const; mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; mapnik::layer_descriptor get_descriptor() const; private: diff --git a/plugins/input/templates/helloworld/hello_datasource.cpp b/plugins/input/templates/helloworld/hello_datasource.cpp index 96307409fe..2633cd976a 100644 --- a/plugins/input/templates/helloworld/hello_datasource.cpp +++ b/plugins/input/templates/helloworld/hello_datasource.cpp @@ -46,9 +46,9 @@ mapnik::box2d hello_datasource::envelope() const return extent_; } -boost::optional hello_datasource::get_geometry_type() const +boost::optional hello_datasource::get_geometry_type() const { - return mapnik::datasource::Point; + return mapnik::datasource_geometry_t::Point; } mapnik::layer_descriptor hello_datasource::get_descriptor() const diff --git a/plugins/input/templates/helloworld/hello_datasource.hpp b/plugins/input/templates/helloworld/hello_datasource.hpp index 432489dbe4..dfd8feee5e 100644 --- a/plugins/input/templates/helloworld/hello_datasource.hpp +++ b/plugins/input/templates/helloworld/hello_datasource.hpp @@ -46,7 +46,7 @@ class hello_datasource : public mapnik::datasource mapnik::box2d envelope() const; // mandatory: optionally return the overal geometry type of the datasource - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; // mandatory: return the layer descriptor mapnik::layer_descriptor get_descriptor() const; diff --git a/plugins/input/topojson/topojson_datasource.cpp b/plugins/input/topojson/topojson_datasource.cpp index 5c1c8d4af2..6aceb32ebb 100644 --- a/plugins/input/topojson/topojson_datasource.cpp +++ b/plugins/input/topojson/topojson_datasource.cpp @@ -86,27 +86,27 @@ struct geometry_type_visitor { int operator() (mapnik::topojson::point const&) const { - return static_cast(mapnik::datasource::Point); + return static_cast(mapnik::datasource_geometry_t::Point); } int operator() (mapnik::topojson::multi_point const&) const { - return static_cast(mapnik::datasource::Point); + return static_cast(mapnik::datasource_geometry_t::Point); } int operator() (mapnik::topojson::linestring const&) const { - return static_cast(mapnik::datasource::LineString); + return static_cast(mapnik::datasource_geometry_t::LineString); } int operator() (mapnik::topojson::multi_linestring const&) const { - return static_cast(mapnik::datasource::LineString); + return static_cast(mapnik::datasource_geometry_t::LineString); } int operator() (mapnik::topojson::polygon const&) const { - return static_cast(mapnik::datasource::Polygon); + return static_cast(mapnik::datasource_geometry_t::Polygon); } int operator() (mapnik::topojson::multi_polygon const&) const { - return static_cast(mapnik::datasource::Polygon); + return static_cast(mapnik::datasource_geometry_t::Polygon); } int operator() (mapnik::topojson::invalid const&) const { @@ -234,9 +234,9 @@ const char * topojson_datasource::name() return "topojson"; } -boost::optional topojson_datasource::get_geometry_type() const +boost::optional topojson_datasource::get_geometry_type() const { - boost::optional result; + boost::optional result; int multi_type = 0; std::size_t num_features = topo_.geometries.size(); for (std::size_t i = 0; i < num_features && i < 5; ++i) @@ -247,12 +247,12 @@ boost::optional topojson_datasource::get_geometr { if (multi_type > 0 && multi_type != type) { - result.reset(mapnik::datasource::Collection); + result.reset(mapnik::datasource_geometry_t::Collection); return result; } else { - result.reset(static_cast(type)); + result.reset(static_cast(type)); } multi_type = type; } diff --git a/plugins/input/topojson/topojson_datasource.hpp b/plugins/input/topojson/topojson_datasource.hpp index d1892a75a4..6b090e8f8f 100644 --- a/plugins/input/topojson/topojson_datasource.hpp +++ b/plugins/input/topojson/topojson_datasource.hpp @@ -73,7 +73,7 @@ class topojson_datasource : public mapnik::datasource mapnik::featureset_ptr features_at_point(mapnik::coord2d const& pt, double tol = 0) const; mapnik::box2d envelope() const; mapnik::layer_descriptor get_descriptor() const; - boost::optional get_geometry_type() const; + boost::optional get_geometry_type() const; template void parse_topojson(T const& buffer); private: diff --git a/src/memory_datasource.cpp b/src/memory_datasource.cpp index 84b99670a3..ba733bb068 100644 --- a/src/memory_datasource.cpp +++ b/src/memory_datasource.cpp @@ -125,10 +125,10 @@ box2d memory_datasource::envelope() const return extent_; } -boost::optional memory_datasource::get_geometry_type() const +boost::optional memory_datasource::get_geometry_type() const { // TODO - detect this? - return datasource::Collection; + return datasource_geometry_t::Collection; } layer_descriptor memory_datasource::get_descriptor() const