1 #ifndef OSMIUM_GEOM_GEOJSON_HPP
2 #define OSMIUM_GEOM_GEOJSON_HPP
50 class GeoJSONFactoryImpl {
57 using point_type = std::string;
58 using linestring_type = std::string;
59 using polygon_type = std::string;
60 using multipolygon_type = std::string;
61 using ring_type = std::string;
63 GeoJSONFactoryImpl(
int ,
int precision = 7) :
64 m_precision(precision) {
71 std::string str {
"{\"type\":\"Point\",\"coordinates\":"};
80 void linestring_start() {
81 m_str =
"{\"type\":\"LineString\",\"coordinates\":[";
89 linestring_type linestring_finish(
size_t ) {
90 assert(!m_str.empty());
103 void multipolygon_start() {
104 m_str =
"{\"type\":\"MultiPolygon\",\"coordinates\":[";
107 void multipolygon_polygon_start() {
111 void multipolygon_polygon_finish() {
115 void multipolygon_outer_ring_start() {
119 void multipolygon_outer_ring_finish() {
120 assert(!m_str.empty());
124 void multipolygon_inner_ring_start() {
128 void multipolygon_inner_ring_finish() {
129 assert(!m_str.empty());
138 multipolygon_type multipolygon_finish() {
139 assert(!m_str.empty());
154 template <
typename TProjection = IdentityProjection>
161 #endif // OSMIUM_GEOM_GEOJSON_HPP
Definition: factory.hpp:148
void swap(Buffer &lhs, Buffer &rhs)
Definition: buffer.hpp:731
Namespace for everything in the Osmium library.
Definition: assembler.hpp:73
Definition: coordinates.hpp:46
void append_to_string(std::string &s, const char infix, int precision) const
Definition: coordinates.hpp:57