mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
Support feature IDs for decoding
This commit is contained in:
@@ -102,6 +102,11 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
|
|||||||
within = 1;
|
within = 1;
|
||||||
|
|
||||||
printf("{ \"type\": \"Feature\"");
|
printf("{ \"type\": \"Feature\"");
|
||||||
|
|
||||||
|
if (feat.has_id) {
|
||||||
|
printf(", \"id\": %llu", feat.id);
|
||||||
|
}
|
||||||
|
|
||||||
printf(", \"properties\": { ");
|
printf(", \"properties\": { ");
|
||||||
|
|
||||||
for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) {
|
for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) {
|
||||||
|
|||||||
@@ -178,6 +178,11 @@ bool mvt_tile::decode(std::string &message) {
|
|||||||
|
|
||||||
while (feature_reader.next()) {
|
while (feature_reader.next()) {
|
||||||
switch (feature_reader.tag()) {
|
switch (feature_reader.tag()) {
|
||||||
|
case 1: /* id */
|
||||||
|
feature.id = feature_reader.get_uint64();
|
||||||
|
feature.has_id = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case 2: /* tag */
|
case 2: /* tag */
|
||||||
{
|
{
|
||||||
auto pi = feature_reader.get_packed_uint32();
|
auto pi = feature_reader.get_packed_uint32();
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ struct mvt_feature {
|
|||||||
std::vector<unsigned> tags;
|
std::vector<unsigned> tags;
|
||||||
std::vector<mvt_geometry> geometry;
|
std::vector<mvt_geometry> geometry;
|
||||||
int /* mvt_geometry_type */ type;
|
int /* mvt_geometry_type */ type;
|
||||||
|
unsigned long long id;
|
||||||
|
bool has_id;
|
||||||
|
|
||||||
|
mvt_feature() {
|
||||||
|
has_id = false;
|
||||||
|
id = 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
enum mvt_value_type {
|
enum mvt_value_type {
|
||||||
|
|||||||
Reference in New Issue
Block a user