mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
Fix the flatgeobuf build (#30)
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
## 2.10.1
|
||||||
|
|
||||||
|
* Upgrade flatbuffers version
|
||||||
|
|
||||||
## 2.9.1
|
## 2.9.1
|
||||||
|
|
||||||
* Do label generation after simplification, not before.
|
* Do label generation after simplification, not before.
|
||||||
|
|||||||
+29
-29
@@ -71,19 +71,19 @@ drawvec readLinePart(const FlatGeobuf::Geometry *geometry) {
|
|||||||
|
|
||||||
drawvec readGeometry(const FlatGeobuf::Geometry *geometry, FlatGeobuf::GeometryType h_geometry_type) {
|
drawvec readGeometry(const FlatGeobuf::Geometry *geometry, FlatGeobuf::GeometryType h_geometry_type) {
|
||||||
FlatGeobuf::GeometryType geometry_type = h_geometry_type;
|
FlatGeobuf::GeometryType geometry_type = h_geometry_type;
|
||||||
if (h_geometry_type == FlatGeobuf::GeometryType::Unknown) geometry_type = geometry->type();
|
if (h_geometry_type == FlatGeobuf::GeometryType_Unknown) geometry_type = geometry->type();
|
||||||
|
|
||||||
if (geometry_type == FlatGeobuf::GeometryType::Point) {
|
if (geometry_type == FlatGeobuf::GeometryType_Point) {
|
||||||
return readPoints(geometry);
|
return readPoints(geometry);
|
||||||
} if (geometry_type == FlatGeobuf::GeometryType::MultiPoint) {
|
} if (geometry_type == FlatGeobuf::GeometryType_MultiPoint) {
|
||||||
return readPoints(geometry);
|
return readPoints(geometry);
|
||||||
} if (geometry_type == FlatGeobuf::GeometryType::LineString) {
|
} if (geometry_type == FlatGeobuf::GeometryType_LineString) {
|
||||||
return readLinePart(geometry);
|
return readLinePart(geometry);
|
||||||
} else if (h_geometry_type == FlatGeobuf::GeometryType::MultiLineString) {
|
} else if (h_geometry_type == FlatGeobuf::GeometryType_MultiLineString) {
|
||||||
return readLinePart(geometry);
|
return readLinePart(geometry);
|
||||||
} if (geometry_type == FlatGeobuf::GeometryType::Polygon) {
|
} if (geometry_type == FlatGeobuf::GeometryType_Polygon) {
|
||||||
return readLinePart(geometry);
|
return readLinePart(geometry);
|
||||||
} else if (geometry_type == FlatGeobuf::GeometryType::MultiPolygon) {
|
} else if (geometry_type == FlatGeobuf::GeometryType_MultiPolygon) {
|
||||||
// if it is a GeometryCollection, parse Parts, ignore XY
|
// if it is a GeometryCollection, parse Parts, ignore XY
|
||||||
drawvec dv;
|
drawvec dv;
|
||||||
for (size_t part = 0; part < geometry->parts()->size(); part++) {
|
for (size_t part = 0; part < geometry->parts()->size(); part++) {
|
||||||
@@ -106,23 +106,23 @@ void readFeature(const FlatGeobuf::Feature *feature, long long feature_sequence_
|
|||||||
int drawvec_type = -1;
|
int drawvec_type = -1;
|
||||||
|
|
||||||
FlatGeobuf::GeometryType geometry_type = h_geometry_type;
|
FlatGeobuf::GeometryType geometry_type = h_geometry_type;
|
||||||
if (h_geometry_type == FlatGeobuf::GeometryType::Unknown) geometry_type = feature->geometry()->type();
|
if (h_geometry_type == FlatGeobuf::GeometryType_Unknown) geometry_type = feature->geometry()->type();
|
||||||
|
|
||||||
switch (geometry_type) {
|
switch (geometry_type) {
|
||||||
case FlatGeobuf::GeometryType::Point :
|
case FlatGeobuf::GeometryType_Point :
|
||||||
case FlatGeobuf::GeometryType::MultiPoint :
|
case FlatGeobuf::GeometryType_MultiPoint :
|
||||||
drawvec_type = 1;
|
drawvec_type = 1;
|
||||||
break;
|
break;
|
||||||
case FlatGeobuf::GeometryType::LineString :
|
case FlatGeobuf::GeometryType_LineString :
|
||||||
case FlatGeobuf::GeometryType::MultiLineString :
|
case FlatGeobuf::GeometryType_MultiLineString :
|
||||||
drawvec_type = 2;
|
drawvec_type = 2;
|
||||||
break;
|
break;
|
||||||
case FlatGeobuf::GeometryType::Polygon :
|
case FlatGeobuf::GeometryType_Polygon :
|
||||||
case FlatGeobuf::GeometryType::MultiPolygon :
|
case FlatGeobuf::GeometryType_MultiPolygon :
|
||||||
drawvec_type = 3;
|
drawvec_type = 3;
|
||||||
break;
|
break;
|
||||||
case FlatGeobuf::GeometryType::Unknown :
|
case FlatGeobuf::GeometryType_Unknown :
|
||||||
case FlatGeobuf::GeometryType::GeometryCollection :
|
case FlatGeobuf::GeometryType_GeometryCollection :
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "flatgeobuf has unsupported geometry type %u\n", (unsigned int)h_geometry_type);
|
fprintf(stderr, "flatgeobuf has unsupported geometry type %u\n", (unsigned int)h_geometry_type);
|
||||||
exit(EXIT_IMPOSSIBLE);
|
exit(EXIT_IMPOSSIBLE);
|
||||||
@@ -161,73 +161,73 @@ void readFeature(const FlatGeobuf::Feature *feature, long long feature_sequence_
|
|||||||
FlatGeobuf::ColumnType col_type = h_column_types[col_idx];
|
FlatGeobuf::ColumnType col_type = h_column_types[col_idx];
|
||||||
|
|
||||||
serial_val sv;
|
serial_val sv;
|
||||||
if (col_type == FlatGeobuf::ColumnType::Byte) {
|
if (col_type == FlatGeobuf::ColumnType_Byte) {
|
||||||
sv.type = mvt_sint;
|
sv.type = mvt_sint;
|
||||||
int8_t byte_val;
|
int8_t byte_val;
|
||||||
memcpy(&byte_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(byte_val));
|
memcpy(&byte_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(byte_val));
|
||||||
sv.s = std::to_string(byte_val);
|
sv.s = std::to_string(byte_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(byte_val);
|
p_pos += sizeof(uint16_t) + sizeof(byte_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::UByte) {
|
} else if (col_type == FlatGeobuf::ColumnType_UByte) {
|
||||||
sv.type = mvt_uint;
|
sv.type = mvt_uint;
|
||||||
uint8_t ubyte_val;
|
uint8_t ubyte_val;
|
||||||
memcpy(&ubyte_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ubyte_val));
|
memcpy(&ubyte_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ubyte_val));
|
||||||
sv.s = std::to_string(ubyte_val);
|
sv.s = std::to_string(ubyte_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(ubyte_val);
|
p_pos += sizeof(uint16_t) + sizeof(ubyte_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Bool) {
|
} else if (col_type == FlatGeobuf::ColumnType_Bool) {
|
||||||
sv.type = mvt_bool;
|
sv.type = mvt_bool;
|
||||||
uint8_t bool_val;
|
uint8_t bool_val;
|
||||||
memcpy(&bool_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(bool_val));
|
memcpy(&bool_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(bool_val));
|
||||||
sv.s = std::to_string(bool_val);
|
sv.s = std::to_string(bool_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(bool_val);
|
p_pos += sizeof(uint16_t) + sizeof(bool_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Short) {
|
} else if (col_type == FlatGeobuf::ColumnType_Short) {
|
||||||
sv.type = mvt_sint;
|
sv.type = mvt_sint;
|
||||||
int16_t short_val;
|
int16_t short_val;
|
||||||
memcpy(&short_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(short_val));
|
memcpy(&short_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(short_val));
|
||||||
sv.s = std::to_string(short_val);
|
sv.s = std::to_string(short_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(short_val);
|
p_pos += sizeof(uint16_t) + sizeof(short_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::UShort) {
|
} else if (col_type == FlatGeobuf::ColumnType_UShort) {
|
||||||
sv.type = mvt_uint;
|
sv.type = mvt_uint;
|
||||||
uint16_t ushort_val;
|
uint16_t ushort_val;
|
||||||
memcpy(&ushort_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ushort_val));
|
memcpy(&ushort_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ushort_val));
|
||||||
sv.s = std::to_string(ushort_val);
|
sv.s = std::to_string(ushort_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(ushort_val);
|
p_pos += sizeof(uint16_t) + sizeof(ushort_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Int) {
|
} else if (col_type == FlatGeobuf::ColumnType_Int) {
|
||||||
sv.type = mvt_sint;
|
sv.type = mvt_sint;
|
||||||
int32_t int_val;
|
int32_t int_val;
|
||||||
memcpy(&int_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(int_val));
|
memcpy(&int_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(int_val));
|
||||||
sv.s = std::to_string(int_val);
|
sv.s = std::to_string(int_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(int_val);
|
p_pos += sizeof(uint16_t) + sizeof(int_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::UInt) {
|
} else if (col_type == FlatGeobuf::ColumnType_UInt) {
|
||||||
sv.type = mvt_uint;
|
sv.type = mvt_uint;
|
||||||
uint32_t uint_val;
|
uint32_t uint_val;
|
||||||
memcpy(&uint_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(uint_val));
|
memcpy(&uint_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(uint_val));
|
||||||
sv.s = std::to_string(uint_val);
|
sv.s = std::to_string(uint_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(uint_val);
|
p_pos += sizeof(uint16_t) + sizeof(uint_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Long) {
|
} else if (col_type == FlatGeobuf::ColumnType_Long) {
|
||||||
sv.type = mvt_sint;
|
sv.type = mvt_sint;
|
||||||
int64_t long_val;
|
int64_t long_val;
|
||||||
memcpy(&long_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(long_val));
|
memcpy(&long_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(long_val));
|
||||||
sv.s = std::to_string(long_val);
|
sv.s = std::to_string(long_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(long_val);
|
p_pos += sizeof(uint16_t) + sizeof(long_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::ULong) {
|
} else if (col_type == FlatGeobuf::ColumnType_ULong) {
|
||||||
sv.type = mvt_uint;
|
sv.type = mvt_uint;
|
||||||
int64_t ulong_val;
|
int64_t ulong_val;
|
||||||
memcpy(&ulong_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ulong_val));
|
memcpy(&ulong_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(ulong_val));
|
||||||
sv.s = std::to_string(ulong_val);
|
sv.s = std::to_string(ulong_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(ulong_val);
|
p_pos += sizeof(uint16_t) + sizeof(ulong_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Float) {
|
} else if (col_type == FlatGeobuf::ColumnType_Float) {
|
||||||
sv.type = mvt_float;
|
sv.type = mvt_float;
|
||||||
float float_val;
|
float float_val;
|
||||||
memcpy(&float_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(float_val));
|
memcpy(&float_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(float_val));
|
||||||
sv.s = milo::dtoa_milo(float_val);
|
sv.s = milo::dtoa_milo(float_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(float_val);
|
p_pos += sizeof(uint16_t) + sizeof(float_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::Double) {
|
} else if (col_type == FlatGeobuf::ColumnType_Double) {
|
||||||
sv.type = mvt_double;
|
sv.type = mvt_double;
|
||||||
double double_val;
|
double double_val;
|
||||||
memcpy(&double_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(double_val));
|
memcpy(&double_val, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(double_val));
|
||||||
sv.s = milo::dtoa_milo(double_val);
|
sv.s = milo::dtoa_milo(double_val);
|
||||||
p_pos += sizeof(uint16_t) + sizeof(double_val);
|
p_pos += sizeof(uint16_t) + sizeof(double_val);
|
||||||
} else if (col_type == FlatGeobuf::ColumnType::String || col_type == FlatGeobuf::ColumnType::Json || col_type == FlatGeobuf::ColumnType::DateTime) {
|
} else if (col_type == FlatGeobuf::ColumnType_String || col_type == FlatGeobuf::ColumnType_Json || col_type == FlatGeobuf::ColumnType_DateTime) {
|
||||||
sv.type = mvt_string;
|
sv.type = mvt_string;
|
||||||
uint32_t val_len;
|
uint32_t val_len;
|
||||||
memcpy(&val_len, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(val_len));
|
memcpy(&val_len, feature->properties()->data() + p_pos + sizeof(uint16_t), sizeof(val_len));
|
||||||
@@ -252,7 +252,7 @@ void readFeature(const FlatGeobuf::Feature *feature, long long feature_sequence_
|
|||||||
struct fgb_queued_feature {
|
struct fgb_queued_feature {
|
||||||
const FlatGeobuf::Feature *feature = NULL;
|
const FlatGeobuf::Feature *feature = NULL;
|
||||||
long long feature_sequence_id = -1;
|
long long feature_sequence_id = -1;
|
||||||
FlatGeobuf::GeometryType h_geometry_type = FlatGeobuf::GeometryType::Unknown;
|
FlatGeobuf::GeometryType h_geometry_type = FlatGeobuf::GeometryType_Unknown;
|
||||||
const std::vector<std::string> *h_column_names = NULL;
|
const std::vector<std::string> *h_column_names = NULL;
|
||||||
const std::vector<FlatGeobuf::ColumnType> *h_column_types = NULL;
|
const std::vector<FlatGeobuf::ColumnType> *h_column_types = NULL;
|
||||||
std::vector<struct serialization_state> *sst = NULL;
|
std::vector<struct serialization_state> *sst = NULL;
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#ifndef VERSION_HPP
|
#ifndef VERSION_HPP
|
||||||
#define VERSION_HPP
|
#define VERSION_HPP
|
||||||
|
|
||||||
#define VERSION "v2.9.1"
|
#define VERSION "v2.10.1"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user