mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-06 10:25:41 +02:00
Gonna get it right this time
This commit is contained in:
@@ -371,6 +371,14 @@ overzoom-test: tippecanoe-overzoom
|
|||||||
./tippecanoe-decode tests/pbf/0-0-0-pop-2-0-1.pbf.out 2 0 1 > tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check
|
./tippecanoe-decode tests/pbf/0-0-0-pop-2-0-1.pbf.out 2 0 1 > tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check
|
||||||
cmp tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check tests/pbf/0-0-0-pop-2-0-1.pbf.out.json
|
cmp tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check tests/pbf/0-0-0-pop-2-0-1.pbf.out.json
|
||||||
rm tests/pbf/0-0-0-pop-2-0-1.pbf.out tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check
|
rm tests/pbf/0-0-0-pop-2-0-1.pbf.out tests/pbf/0-0-0-pop-2-0-1.pbf.out.json.check
|
||||||
|
./tippecanoe-overzoom -o tests/pbf/0-0-0-pop-1-1-0.pbf.out --assign-to-bins tests/pbf/h3-1-1-0.geojson tests/pbf/0-0-0.pbf 1/1/0 1/1/0
|
||||||
|
./tippecanoe-decode tests/pbf/0-0-0-pop-1-1-0.pbf.out 1 1 0 > tests/pbf/0-0-0-pop-1-1-0.pbf.out.json.check
|
||||||
|
cmp tests/pbf/0-0-0-pop-1-1-0.pbf.out.json.check tests/pbf/0-0-0-pop-1-1-0.pbf.out.json
|
||||||
|
rm tests/pbf/0-0-0-pop-1-1-0.pbf.out tests/pbf/0-0-0-pop-1-1-0.pbf.out.json.check
|
||||||
|
./tippecanoe-overzoom -o tests/pbf/0-0-0-pop-0-0-0.pbf.out --assign-to-bins tests/pbf/h3-0-0-0.geojson tests/pbf/0-0-0.pbf 0/0/0 0/0/0
|
||||||
|
./tippecanoe-decode tests/pbf/0-0-0-pop-0-0-0.pbf.out 0 0 0 > tests/pbf/0-0-0-pop-0-0-0.pbf.out.json.check
|
||||||
|
cmp tests/pbf/0-0-0-pop-0-0-0.pbf.out.json.check tests/pbf/0-0-0-pop-0-0-0.pbf.out.json
|
||||||
|
rm tests/pbf/0-0-0-pop-0-0-0.pbf.out tests/pbf/0-0-0-pop-0-0-0.pbf.out.json.check
|
||||||
|
|
||||||
join-test: tippecanoe tippecanoe-decode tile-join
|
join-test: tippecanoe tippecanoe-decode tile-join
|
||||||
./tippecanoe -q -f -z12 -o tests/join-population/tabblock_06001420.mbtiles -YALAND10:'Land area' -L'{"file": "tests/join-population/tabblock_06001420.json", "description": "population"}'
|
./tippecanoe -q -f -z12 -o tests/join-population/tabblock_06001420.mbtiles -YALAND10:'Land area' -L'{"file": "tests/join-population/tabblock_06001420.json", "description": "population"}'
|
||||||
|
|||||||
+1
-1
@@ -197,7 +197,7 @@ int main(int argc, char **argv) {
|
|||||||
exit(EXIT_OPEN);
|
exit(EXIT_OPEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
bins = parse_layers(f, nz, nx, ny, 1LL << detail);
|
bins = parse_layers(f, nz, nx, ny, 1LL << detail, true);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -82,7 +82,7 @@ std::vector<mvt_layer> parse_layers(int fd, int z, unsigned x, unsigned y, std::
|
|||||||
exit(EXIT_OPEN);
|
exit(EXIT_OPEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<mvt_layer> out = parse_layers(f, z, x, y, extent);
|
std::vector<mvt_layer> out = parse_layers(f, z, x, y, extent, true);
|
||||||
|
|
||||||
if (fclose(f) != 0) {
|
if (fclose(f) != 0) {
|
||||||
perror("fclose postfilter output");
|
perror("fclose postfilter output");
|
||||||
|
|||||||
+6
-6
@@ -178,7 +178,7 @@ static std::vector<mvt_geometry> to_feature(drawvec &geom) {
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int extent) {
|
std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int extent, bool fix_longitudes) {
|
||||||
std::map<std::string, mvt_layer> ret;
|
std::map<std::string, mvt_layer> ret;
|
||||||
std::shared_ptr<std::string> tile_stringpool = std::make_shared<std::string>();
|
std::shared_ptr<std::string> tile_stringpool = std::make_shared<std::string>();
|
||||||
|
|
||||||
@@ -282,7 +282,6 @@ std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int
|
|||||||
dv = fix_polygon(dv, false, false);
|
dv = fix_polygon(dv, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (z > 0) {
|
|
||||||
// handle longitude wraparound
|
// handle longitude wraparound
|
||||||
//
|
//
|
||||||
// this is supposed to be data for a single tile,
|
// this is supposed to be data for a single tile,
|
||||||
@@ -294,14 +293,15 @@ std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int
|
|||||||
// reasonable to have a big, world-spanning polygon,
|
// reasonable to have a big, world-spanning polygon,
|
||||||
// and I'm not sure what to do about that.)
|
// and I'm not sure what to do about that.)
|
||||||
|
|
||||||
|
if (fix_longitudes) {
|
||||||
for (size_t i = 0; i < dv.size(); i++) {
|
for (size_t i = 0; i < dv.size(); i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
if ((dv[0].x < (1LL << 31)) &&
|
if ((dv[0].x < (1LL << 30)) &&
|
||||||
(dv[i].x > (1LL << 31))) {
|
(dv[i].x > 3 * (1LL << 30))) {
|
||||||
dv[i].x -= 1LL << 32;
|
dv[i].x -= 1LL << 32;
|
||||||
}
|
}
|
||||||
if ((dv[0].x > (1LL << 31)) &&
|
if ((dv[0].x > 3 * (1LL << 30)) &&
|
||||||
(dv[i].x < (1LL << 31))) {
|
(dv[i].x < (1LL << 30))) {
|
||||||
dv[i].x += 1LL << 32;
|
dv[i].x += 1LL << 32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -12,6 +12,6 @@ extern int mb_geometry[GEOM_TYPES];
|
|||||||
|
|
||||||
void json_context(json_object *j);
|
void json_context(json_object *j);
|
||||||
void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature);
|
void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature);
|
||||||
std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int extent);
|
std::vector<mvt_layer> parse_layers(FILE *fp, int z, unsigned x, unsigned y, int extent, bool fix_longitudes);
|
||||||
|
|
||||||
serial_val stringify_value(json_object *value, const char *reading, int line, json_object *feature);
|
serial_val stringify_value(json_object *value, const char *reading, int line, json_object *feature);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user