1#ifndef NGEN_GEOPACKAGE_WKB_H
2#define NGEN_GEOPACKAGE_WKB_H
4#include "EndianCopy.hpp"
5#include "JSONGeometry.hpp"
6#include <boost/geometry/srs/epsg.hpp>
7#include <boost/geometry/srs/transformation.hpp>
9namespace bg = boost::geometry;
23 using point_t = bg::model::point<double, 2, bg::cs::cartesian>;
55 static geometry read(
const boost::span<const uint8_t> buffer);
95struct wkb::wgs84 :
public boost::static_visitor<geojson::geometry>
110 const bg::srs::transformation<>&
tr;
boost::variant< coordinate_t, linestring_t, polygon_t, multipoint_t, multilinestring_t, multipolygon_t > geometry
Definition JSONGeometry.hpp:66
Definition DomainLayer.hpp:9
wgs84(uint32_t srs, const bg::srs::transformation<> &tr)
Definition wkb.hpp:97
const bg::srs::transformation & tr
Definition wkb.hpp:110
geojson::geometry operator()(point_t &g)
Definition wkb.cpp:201
uint32_t srs
Definition wkb.hpp:109
A recursive WKB reader.
Definition wkb.hpp:22
static polygon_t read_polygon(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB polygon into a cartesian model.
Definition wkb.cpp:60
static point_t read_point(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB point into a cartesian model.
Definition wkb.cpp:34
std::vector< byte_t > byte_vector
Definition wkb.hpp:39
static multilinestring_t read_multilinestring(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB multilinestring into a cartesian model.
Definition wkb.cpp:117
bg::model::multi_linestring< linestring_t > multilinestring_t
Definition wkb.hpp:27
uint8_t byte_t
Definition wkb.hpp:38
static multipolygon_t read_multipolygon(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB multipolygon into a cartesian model.
Definition wkb.cpp:140
bg::model::point< double, 2, bg::cs::cartesian > point_t
Definition wkb.hpp:23
static multipoint_t read_multipoint(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB multipoint into a cartesian model.
Definition wkb.cpp:93
bg::model::multi_polygon< polygon_t > multipolygon_t
Definition wkb.hpp:28
boost::variant< point_t, linestring_t, polygon_t, multipoint_t, multilinestring_t, multipolygon_t > geometry
Definition wkb.hpp:29
static linestring_t read_linestring(const boost::span< const uint8_t >, int &, uint8_t)
Read a WKB linestring into a cartesian model.
Definition wkb.cpp:44
bg::model::multi_point< point_t > multipoint_t
Definition wkb.hpp:26
bg::model::linestring< point_t > linestring_t
Definition wkb.hpp:24
static geometry read(const boost::span< const uint8_t > buffer)
Read WKB from a given buffer.
Definition wkb.cpp:163
bg::model::polygon< point_t > polygon_t
Definition wkb.hpp:25