diff --git a/include/mapnik/json/geometry_parser.hpp b/include/mapnik/json/geometry_parser.hpp index c83901d32..81fda1744 100644 --- a/include/mapnik/json/geometry_parser.hpp +++ b/include/mapnik/json/geometry_parser.hpp @@ -24,25 +24,14 @@ #define MAPNIK_JSON_GEOMETRY_PARSER_HPP // mapnik +#include // for MAPNIK_DECL +#include - -#include - -// boost -#include -#include +#include namespace mapnik { namespace json { -inline bool from_geojson(std::string const& json, mapnik::geometry::geometry & geom) -{ - using namespace boost::spirit; - static const geometry_grammar g; - standard::space_type space; - char const* start = json.c_str(); - char const* end = start + json.length(); - return qi::phrase_parse(start, end, g, space, geom); -} +MAPNIK_DECL bool from_geojson(std::string const& json, mapnik::geometry::geometry & geom); }} diff --git a/include/mapnik/util/geometry_to_geojson.hpp b/include/mapnik/util/geometry_to_geojson.hpp index 5cccb0950..d9f3aa451 100644 --- a/include/mapnik/util/geometry_to_geojson.hpp +++ b/include/mapnik/util/geometry_to_geojson.hpp @@ -24,18 +24,14 @@ #define MAPNIK_GEOMETRY_TO_GEOJSON_HPP // mapnik +#include // for MAPNIK_DECL +#include -#include +#include namespace mapnik { namespace util { -inline bool to_geojson(std::string & json, mapnik::geometry::geometry const& geom) -{ - using sink_type = std::back_insert_iterator; - static const mapnik::json::geometry_generator_grammar > grammar; - sink_type sink(json); - return boost::spirit::karma::generate(sink, grammar, geom); -} +MAPNIK_DECL bool to_geojson(std::string & json, mapnik::geometry::geometry const& geom); }} diff --git a/src/json/mapnik_geometry_to_geojson.cpp b/src/json/mapnik_geometry_to_geojson.cpp new file mode 100644 index 000000000..ab2618093 --- /dev/null +++ b/src/json/mapnik_geometry_to_geojson.cpp @@ -0,0 +1,37 @@ +/***************************************************************************** + * + * 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 + * + *****************************************************************************/ + +// mapnik +#include +#include + +namespace mapnik { namespace util { + +bool to_geojson(std::string & json, mapnik::geometry::geometry const& geom) +{ + using sink_type = std::back_insert_iterator; + static const mapnik::json::geometry_generator_grammar > grammar; + sink_type sink(json); + return boost::spirit::karma::generate(sink, grammar, geom); +} + +}} diff --git a/src/json/mapnik_json_geometry_parser.cpp b/src/json/mapnik_json_geometry_parser.cpp new file mode 100644 index 000000000..278d2c4be --- /dev/null +++ b/src/json/mapnik_json_geometry_parser.cpp @@ -0,0 +1,43 @@ +/***************************************************************************** + * + * This file is part of Mapnik (c++ mapping toolkit) + * + * Copyright (C) 2016 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 + * + *****************************************************************************/ + + +#include +#include + +// boost +#include +#include + +namespace mapnik { namespace json { + +bool from_geojson(std::string const& json, mapnik::geometry::geometry & geom) +{ + using namespace boost::spirit; + static const geometry_grammar g; + standard::space_type space; + char const* start = json.c_str(); + char const* end = start + json.length(); + return qi::phrase_parse(start, end, g, space, geom); +} + +}}