boat
C++23 geospatial library
Loading...
Searching...
No Matches
geometry.hpp
Go to the documentation of this file.
1// Andrew Naplavkov
2
3#ifndef BOAT_DB_ADAPTED_GEOMETRY_HPP
4#define BOAT_DB_ADAPTED_GEOMETRY_HPP
5
6#include <boat/db/variant.hpp>
8
9namespace boat::db {
10
12void read(variant const& in, geometry::ogc99 auto& out)
13{
14 if (in.has_value())
15 blob_view{std::get<blob>(in)} >> out;
16 else
17 out = {};
18}
19
21void write(variant& out, geometry::ogc99 auto const& in)
22{
23 out.emplace<blob>() << in;
24}
25
26template <geometry::ogc99 T>
27struct kind<T> {
28 static constexpr auto value = "geometry";
29};
30
31} // namespace boat::db
32
33#endif // BOAT_DB_ADAPTED_GEOMETRY_HPP
Definition vocabulary.hpp:121
Definition geometry.hpp:9
void write(variant &out, geometry::ogc99 auto const &in)
Serializes an OGC geometry as WKB in a blob.
Definition geometry.hpp:21
void read(variant const &in, geometry::ogc99 auto &out)
Reads WKB from a blob; NULL produces a default-constructed geometry.
Definition geometry.hpp:12
Definition blob.hpp:14
Definition blob.hpp:19
static constexpr auto value
Definition geometry.hpp:28
Maps a C++ type to the database-neutral type name used by boat.
Definition variant.hpp:58
Definition variant.hpp:14
bool has_value() const
Definition variant.hpp:18