tippecanoe/mvt.hh

74 lines
1.3 KiB
C++
Raw Normal View History

2016-04-22 22:10:16 +00:00
bool is_compressed(std::string const &data);
int decompress(std::string const &input, std::string &output);
int compress(std::string const &input, std::string &output);
int dezig(unsigned n);
enum mvt_geometry_type {
2016-04-23 00:10:33 +00:00
mvt_point = 1,
mvt_linestring = 2,
mvt_polygon = 3
2016-04-22 22:10:16 +00:00
};
enum mvt_operation {
2016-04-23 00:10:33 +00:00
mvt_moveto = 1,
mvt_lineto = 2,
mvt_closepath = 7
2016-04-22 22:10:16 +00:00
};
enum mvt_value_type {
2016-04-23 00:10:33 +00:00
mvt_string,
mvt_float,
mvt_double,
mvt_int,
mvt_uint,
mvt_sint,
mvt_bool
2016-04-22 22:10:16 +00:00
};
struct mvt_value {
mvt_value_type type;
std::string string_value;
union {
float float_value;
double double_value;
long long int_value;
unsigned long long uint_value;
long long sint_value;
bool bool_value;
} numeric_value;
};
struct mvt_geometry {
int /* mvt_operation */ op;
long long x;
long long y;
mvt_geometry(int op, long long x, long long y) {
this->op = op;
this->x = x;
this->y = y;
}
};
struct mvt_feature {
std::vector<unsigned> tags;
int /* mvt_geometry_type */ type;
std::vector<mvt_geometry> geometry;
};
struct mvt_layer {
int version;
std::string name;
std::vector<mvt_feature> features;
std::vector<std::string> keys;
std::vector<mvt_value> values;
int extent;
};
struct mvt_tile {
std::vector<mvt_layer> layers;
};
bool mvt_decode(std::string &message, mvt_tile &out);
std::string mvt_encode(mvt_tile &in);