mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
FlatGeobuf multipoints [#2]
This commit is contained in:
+17
-3
@@ -36,6 +36,18 @@ uint64_t PackedRTreeSize(const uint64_t numItems, const uint16_t nodeSize)
|
|||||||
return numNodes * sizeof(NodeItem);
|
return numNodes * sizeof(NodeItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drawvec readPoints(const FlatGeobuf::Geometry *geometry) {
|
||||||
|
auto xy = geometry->xy();
|
||||||
|
drawvec dv;
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < xy->size(); i+=2) {
|
||||||
|
long long x, y;
|
||||||
|
projection->project(xy->Get(i), xy->Get(i+1), 32, &x, &y);
|
||||||
|
dv.push_back(draw(VT_MOVETO, x, y));
|
||||||
|
}
|
||||||
|
return dv;
|
||||||
|
}
|
||||||
|
|
||||||
drawvec readLinePart(const FlatGeobuf::Geometry *geometry) {
|
drawvec readLinePart(const FlatGeobuf::Geometry *geometry) {
|
||||||
auto xy = geometry->xy();
|
auto xy = geometry->xy();
|
||||||
auto ends = geometry->ends();
|
auto ends = geometry->ends();
|
||||||
@@ -56,10 +68,12 @@ 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) {
|
||||||
if (h_geometry_type == FlatGeobuf::GeometryType::LineString) {
|
if (h_geometry_type == FlatGeobuf::GeometryType::MultiPoint) {
|
||||||
|
return readPoints(geometry);
|
||||||
|
} if (h_geometry_type == FlatGeobuf::GeometryType::LineString) {
|
||||||
|
return readLinePart(geometry);
|
||||||
} else if (h_geometry_type == FlatGeobuf::GeometryType::MultiLineString) {
|
} else if (h_geometry_type == FlatGeobuf::GeometryType::MultiLineString) {
|
||||||
return readLinePart(geometry); // TODO fixme
|
return readLinePart(geometry);
|
||||||
} if (h_geometry_type == FlatGeobuf::GeometryType::Polygon) {
|
} if (h_geometry_type == FlatGeobuf::GeometryType::Polygon) {
|
||||||
return readLinePart(geometry);
|
return readLinePart(geometry);
|
||||||
} else if (h_geometry_type == FlatGeobuf::GeometryType::MultiPolygon) {
|
} else if (h_geometry_type == FlatGeobuf::GeometryType::MultiPolygon) {
|
||||||
|
|||||||
Reference in New Issue
Block a user