mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-04-10 04:19:54 +00:00
Merge pull request #243 from mapbox/z0-extent
Fix clipping extent at z0, and area calculation in tippecanoe-decode
This commit is contained in:
commit
cc4a2736ea
@ -1,3 +1,8 @@
|
||||
## 1.11.5
|
||||
|
||||
* Let zoom level 0 have just as much extent and buffer as any other zoom
|
||||
* Fix tippecanoe-decode bug that would sometimes show outer rings as inner
|
||||
|
||||
## 1.11.4
|
||||
|
||||
* Don't let polygons with nonzero area disappear during cleaning
|
||||
|
26
decode.cpp
26
decode.cpp
@ -33,11 +33,15 @@ struct lonlat {
|
||||
int op;
|
||||
double lon;
|
||||
double lat;
|
||||
int x;
|
||||
int y;
|
||||
|
||||
lonlat(int nop, double nlon, double nlat) {
|
||||
lonlat(int nop, double nlon, double nlat, int nx, int ny) {
|
||||
this->op = nop;
|
||||
this->lon = nlon;
|
||||
this->lat = nlat;
|
||||
this->x = nx;
|
||||
this->y = ny;
|
||||
}
|
||||
};
|
||||
|
||||
@ -156,9 +160,9 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
|
||||
double lat, lon;
|
||||
tile2latlon(wx, wy, 32, &lat, &lon);
|
||||
|
||||
ops.push_back(lonlat(op, lon, lat));
|
||||
ops.push_back(lonlat(op, lon, lat, px, py));
|
||||
} else {
|
||||
ops.push_back(lonlat(op, 0, 0));
|
||||
ops.push_back(lonlat(op, 0, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -223,23 +227,27 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
|
||||
|
||||
int n = rings.size() - 1;
|
||||
if (n >= 0) {
|
||||
rings[n].push_back(ops[i]);
|
||||
if (ops[i].op == VT_CLOSEPATH) {
|
||||
rings[n].push_back(rings[n][0]);
|
||||
} else {
|
||||
rings[n].push_back(ops[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int outer = 0;
|
||||
|
||||
for (size_t i = 0; i < rings.size(); i++) {
|
||||
double area = 0;
|
||||
long double area = 0;
|
||||
for (size_t k = 0; k < rings[i].size(); k++) {
|
||||
if (rings[i][k].op != VT_CLOSEPATH) {
|
||||
area += rings[i][k].lon * rings[i][(k + 1) % rings[i].size()].lat;
|
||||
area -= rings[i][k].lat * rings[i][(k + 1) % rings[i].size()].lon;
|
||||
area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y;
|
||||
area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x;
|
||||
}
|
||||
}
|
||||
|
||||
areas[i] = area;
|
||||
if (areas[i] <= 0 || i == 0) {
|
||||
if (areas[i] >= 0 || i == 0) {
|
||||
outer++;
|
||||
}
|
||||
|
||||
@ -254,7 +262,7 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
|
||||
|
||||
int state = 0;
|
||||
for (size_t i = 0; i < rings.size(); i++) {
|
||||
if (areas[i] <= 0) {
|
||||
if (areas[i] >= 0) {
|
||||
if (state != 0) {
|
||||
// new multipolygon
|
||||
printf(" ] ], [ [ ");
|
||||
|
44
geometry.cpp
44
geometry.cpp
@ -450,10 +450,7 @@ drawvec clean_or_clip_poly(drawvec &geom, int z, int detail, int buffer, bool cl
|
||||
}
|
||||
|
||||
if (clip) {
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
}
|
||||
long long area = 1LL << (32 - z);
|
||||
long long clip_buffer = buffer * area / 256;
|
||||
|
||||
ClipperLib::Path edge;
|
||||
@ -770,11 +767,7 @@ drawvec simple_clip_poly(drawvec &geom, long long minx, long long miny, long lon
|
||||
}
|
||||
|
||||
drawvec simple_clip_poly(drawvec &geom, int z, int detail, int buffer) {
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
}
|
||||
|
||||
long long area = area = 1LL << (32 - z);
|
||||
long long clip_buffer = buffer * area / 256;
|
||||
|
||||
return simple_clip_poly(geom, -clip_buffer, -clip_buffer, area + clip_buffer, area + clip_buffer);
|
||||
@ -863,13 +856,10 @@ drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) {
|
||||
drawvec out;
|
||||
|
||||
long long min = 0;
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
long long area = 1LL << (32 - z);
|
||||
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
}
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
|
||||
for (size_t i = 0; i < geom.size(); i++) {
|
||||
if (geom[i].x >= min && geom[i].y >= min && geom[i].x <= area && geom[i].y <= area) {
|
||||
@ -882,13 +872,10 @@ drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) {
|
||||
|
||||
int quick_check(long long *bbox, int z, int detail, long long buffer) {
|
||||
long long min = 0;
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
long long area = 1LL << (32 - z);
|
||||
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
}
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
|
||||
// bbox entirely outside the tile
|
||||
if (bbox[0] > area || bbox[1] > area) {
|
||||
@ -920,13 +907,9 @@ drawvec clip_lines(drawvec &geom, int z, int detail, long long buffer) {
|
||||
drawvec out;
|
||||
|
||||
long long min = 0;
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
}
|
||||
long long area = 1LL << (32 - z);
|
||||
min -= buffer * area / 256;
|
||||
area += buffer * area / 256;
|
||||
|
||||
for (size_t i = 0; i < geom.size(); i++) {
|
||||
if (i > 0 && (geom[i - 1].op == VT_MOVETO || geom[i - 1].op == VT_LINETO) && geom[i].op == VT_LINETO) {
|
||||
@ -1070,10 +1053,7 @@ drawvec impose_tile_boundaries(drawvec &geom, long long extent) {
|
||||
|
||||
drawvec simplify_lines(drawvec &geom, int z, int detail, bool mark_tile_bounds) {
|
||||
int res = 1 << (32 - detail - z);
|
||||
long long area = 0xFFFFFFFF;
|
||||
if (z != 0) {
|
||||
area = 1LL << (32 - z);
|
||||
}
|
||||
long long area = 1LL << (32 - z);
|
||||
|
||||
for (size_t i = 0; i < geom.size(); i++) {
|
||||
if (geom[i].op == VT_MOVETO) {
|
||||
|
@ -12,7 +12,7 @@
|
||||
}, "features": [
|
||||
{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [
|
||||
{ "type": "FeatureCollection", "properties": { "layer": "in" }, "features": [
|
||||
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -177.539062, 44.339565 ], [ -164.882812, 43.389082 ], [ -153.281250, 46.619261 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.183902 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.510643 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.689872 ], [ -185.976562, 58.859224 ], [ -187.031250, 56.992883 ], [ -187.031250, 65.730626 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.542167 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.616870 ], [ -169.453125, 34.957995 ], [ -180.000000, 36.527295 ], [ -184.218750, 37.160317 ], [ -187.031250, 38.891033 ], [ -187.031250, 50.457504 ], [ -185.976562, 47.279229 ], [ -177.539062, 44.339565 ] ], [ [ 186.943359, 35.460670 ], [ 179.912109, 36.527295 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 55.028022 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.811557 ], [ 177.539062, 67.339861 ], [ 179.912109, 67.542167 ], [ 186.943359, 68.007571 ], [ 186.943359, 63.743631 ], [ 182.109375, 62.593341 ], [ 179.912109, 61.689872 ], [ 174.023438, 58.859224 ], [ 171.562500, 54.418930 ], [ 174.023438, 47.279229 ], [ 179.912109, 45.274886 ], [ 182.460938, 44.339565 ], [ 186.943359, 44.024422 ], [ 186.943359, 35.460670 ] ] ] } }
|
||||
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -177.539062, 44.339565 ], [ -164.882812, 43.389082 ], [ -153.281250, 46.619261 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.183902 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.510643 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.689872 ], [ -185.976562, 58.859224 ], [ -187.031250, 56.992883 ], [ -187.031250, 65.730626 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.542167 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.616870 ], [ -169.453125, 34.957995 ], [ -180.000000, 36.527295 ], [ -184.218750, 37.160317 ], [ -187.031250, 38.891033 ], [ -187.031250, 50.457504 ], [ -185.976562, 47.279229 ], [ -177.539062, 44.339565 ] ] ], [ [ [ 187.031250, 35.460670 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 55.028022 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.811557 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.542167 ], [ 187.031250, 68.007571 ], [ 187.031250, 63.743631 ], [ 182.109375, 62.593341 ], [ 180.000000, 61.689872 ], [ 174.023438, 58.859224 ], [ 171.562500, 54.418930 ], [ 174.023438, 47.279229 ], [ 182.460938, 44.339565 ], [ 187.031250, 44.024422 ], [ 187.031250, 35.460670 ] ] ] ] } }
|
||||
,
|
||||
{ "type": "Feature", "properties": { "zoom": "z0-2" }, "geometry": { "type": "LineString", "coordinates": [ [ -112.851562, 55.178868 ], [ -117.773438, 44.590467 ], [ -104.414062, 51.179343 ] ] } }
|
||||
] }
|
||||
|
@ -974,7 +974,7 @@
|
||||
{ "type": "FeatureCollection", "properties": { "layer": "tabblock_06001420" }, "features": [
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3008", "NAME10": "Block 3008", "MTFCC10": "G5040", "UR10": "R", "FUNCSTAT10": "S", "ALAND10": 0, "AWATER10": 1111196, "INTPTLAT10": "+37.8928912", "INTPTLON10": "-122.3202957" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.312679, 37.897072 ], [ -122.311649, 37.896937 ], [ -122.311649, 37.896260 ], [ -122.311134, 37.896124 ], [ -122.311306, 37.895853 ], [ -122.310791, 37.895582 ], [ -122.310276, 37.894769 ], [ -122.309246, 37.892331 ], [ -122.309418, 37.889757 ], [ -122.309933, 37.888809 ], [ -122.310963, 37.889757 ], [ -122.311134, 37.890299 ], [ -122.311478, 37.890028 ], [ -122.312851, 37.891247 ], [ -122.313709, 37.891925 ], [ -122.314396, 37.892060 ], [ -122.314739, 37.892466 ], [ -122.314568, 37.891925 ], [ -122.315941, 37.891925 ], [ -122.316113, 37.891247 ], [ -122.317657, 37.890976 ], [ -122.319889, 37.890028 ], [ -122.322807, 37.890028 ], [ -122.324009, 37.892466 ], [ -122.325726, 37.892602 ], [ -122.325897, 37.892331 ], [ -122.325554, 37.892060 ], [ -122.325726, 37.890841 ], [ -122.327442, 37.890841 ], [ -122.327442, 37.891518 ], [ -122.327614, 37.891518 ], [ -122.327614, 37.889757 ], [ -122.334824, 37.889622 ], [ -122.333450, 37.892873 ], [ -122.312508, 37.897479 ], [ -122.312679, 37.897072 ] ] ] } }
|
||||
,
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3009", "NAME10": "Block 3009", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 265574, "AWATER10": 0, "INTPTLAT10": "+37.8905867", "INTPTLON10": "-122.3181131" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.310104, 37.894769 ], [ -122.309246, 37.893144 ], [ -122.308903, 37.890570 ], [ -122.309074, 37.888809 ], [ -122.309246, 37.887860 ], [ -122.311306, 37.889486 ], [ -122.327614, 37.889757 ], [ -122.327614, 37.891518 ], [ -122.327442, 37.891518 ], [ -122.327442, 37.890841 ], [ -122.325897, 37.890841 ], [ -122.325554, 37.891518 ], [ -122.325897, 37.892602 ], [ -122.324009, 37.892466 ], [ -122.322807, 37.890028 ], [ -122.319889, 37.890028 ], [ -122.317657, 37.890976 ], [ -122.316113, 37.891247 ], [ -122.315941, 37.891925 ], [ -122.314568, 37.891925 ], [ -122.314739, 37.892466 ], [ -122.314396, 37.892060 ], [ -122.313709, 37.891925 ], [ -122.312851, 37.891247 ], [ -122.311478, 37.890028 ], [ -122.311134, 37.890299 ], [ -122.310963, 37.889757 ], [ -122.309933, 37.888809 ], [ -122.309418, 37.889757 ], [ -122.309246, 37.892331 ], [ -122.310276, 37.894769 ], [ -122.310791, 37.895582 ], [ -122.310104, 37.894769 ] ], [ [ -122.311134, 37.896124 ], [ -122.310791, 37.895582 ], [ -122.311306, 37.895853 ], [ -122.311134, 37.896124 ] ], [ [ -122.311649, 37.896801 ], [ -122.311134, 37.896124 ], [ -122.311649, 37.896260 ], [ -122.311649, 37.896801 ] ] ] } }
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3009", "NAME10": "Block 3009", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 265574, "AWATER10": 0, "INTPTLAT10": "+37.8905867", "INTPTLON10": "-122.3181131" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -122.310104, 37.894769 ], [ -122.309246, 37.893144 ], [ -122.308903, 37.890570 ], [ -122.309074, 37.888809 ], [ -122.309246, 37.887860 ], [ -122.311306, 37.889486 ], [ -122.327614, 37.889757 ], [ -122.327614, 37.891518 ], [ -122.327442, 37.891518 ], [ -122.327442, 37.890841 ], [ -122.325897, 37.890841 ], [ -122.325554, 37.891518 ], [ -122.325897, 37.892602 ], [ -122.324009, 37.892466 ], [ -122.322807, 37.890028 ], [ -122.319889, 37.890028 ], [ -122.317657, 37.890976 ], [ -122.316113, 37.891247 ], [ -122.315941, 37.891925 ], [ -122.314568, 37.891925 ], [ -122.314739, 37.892466 ], [ -122.314396, 37.892060 ], [ -122.313709, 37.891925 ], [ -122.312851, 37.891247 ], [ -122.311478, 37.890028 ], [ -122.311134, 37.890299 ], [ -122.310963, 37.889757 ], [ -122.309933, 37.888809 ], [ -122.309418, 37.889757 ], [ -122.309246, 37.892331 ], [ -122.310276, 37.894769 ], [ -122.310791, 37.895582 ], [ -122.310104, 37.894769 ] ] ], [ [ [ -122.311134, 37.896124 ], [ -122.310791, 37.895582 ], [ -122.311306, 37.895853 ], [ -122.311134, 37.896124 ] ] ], [ [ [ -122.311649, 37.896801 ], [ -122.311134, 37.896124 ], [ -122.311649, 37.896260 ], [ -122.311649, 37.896801 ] ] ] ] } }
|
||||
,
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3007", "NAME10": "Block 3007", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 3648, "AWATER10": 0, "INTPTLAT10": "+37.8971393", "INTPTLON10": "-122.3121267" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.311649, 37.896937 ], [ -122.312508, 37.896937 ], [ -122.312508, 37.897479 ], [ -122.312164, 37.897479 ], [ -122.311649, 37.896937 ] ] ] } }
|
||||
,
|
||||
@ -1458,7 +1458,7 @@
|
||||
{ "type": "FeatureCollection", "properties": { "layer": "tabblock_06001420" }, "features": [
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3008", "NAME10": "Block 3008", "MTFCC10": "G5040", "UR10": "R", "FUNCSTAT10": "S", "ALAND10": 0, "AWATER10": 1111196, "INTPTLAT10": "+37.8928912", "INTPTLON10": "-122.3202957" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.312593, 37.897072 ], [ -122.311649, 37.896869 ], [ -122.311563, 37.896192 ], [ -122.311134, 37.896056 ], [ -122.311306, 37.895785 ], [ -122.311134, 37.895582 ], [ -122.310705, 37.895514 ], [ -122.310619, 37.895108 ], [ -122.310190, 37.894769 ], [ -122.309504, 37.893482 ], [ -122.309160, 37.892263 ], [ -122.309074, 37.891315 ], [ -122.309332, 37.889757 ], [ -122.309504, 37.889147 ], [ -122.309847, 37.888809 ], [ -122.310104, 37.888944 ], [ -122.310190, 37.889147 ], [ -122.310877, 37.889757 ], [ -122.311049, 37.890231 ], [ -122.311134, 37.890299 ], [ -122.311220, 37.889960 ], [ -122.311392, 37.889960 ], [ -122.311735, 37.890434 ], [ -122.312765, 37.891247 ], [ -122.313709, 37.891925 ], [ -122.314310, 37.891992 ], [ -122.314739, 37.892466 ], [ -122.314825, 37.892466 ], [ -122.314568, 37.891925 ], [ -122.315941, 37.891925 ], [ -122.316027, 37.891180 ], [ -122.317657, 37.890976 ], [ -122.319889, 37.889960 ], [ -122.322721, 37.890028 ], [ -122.323151, 37.891044 ], [ -122.324009, 37.892399 ], [ -122.325726, 37.892534 ], [ -122.325897, 37.892331 ], [ -122.325554, 37.892060 ], [ -122.325640, 37.890841 ], [ -122.327356, 37.890841 ], [ -122.327442, 37.891518 ], [ -122.327528, 37.891586 ], [ -122.327614, 37.891450 ], [ -122.327700, 37.890231 ], [ -122.327614, 37.889689 ], [ -122.334738, 37.889622 ], [ -122.333450, 37.892805 ], [ -122.312508, 37.897479 ], [ -122.312593, 37.897072 ] ] ] } }
|
||||
,
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3009", "NAME10": "Block 3009", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 265574, "AWATER10": 0, "INTPTLAT10": "+37.8905867", "INTPTLON10": "-122.3181131" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.308903, 37.890502 ], [ -122.308989, 37.888809 ], [ -122.309246, 37.887860 ], [ -122.309847, 37.888131 ], [ -122.311306, 37.889486 ], [ -122.315598, 37.889689 ], [ -122.315855, 37.889554 ], [ -122.327614, 37.889689 ], [ -122.327614, 37.891450 ], [ -122.327528, 37.891586 ], [ -122.327442, 37.891518 ], [ -122.327356, 37.890841 ], [ -122.325811, 37.890841 ], [ -122.325640, 37.890976 ], [ -122.325554, 37.891518 ], [ -122.325554, 37.892060 ], [ -122.325897, 37.892331 ], [ -122.325897, 37.892534 ], [ -122.324009, 37.892399 ], [ -122.323151, 37.891044 ], [ -122.322721, 37.890028 ], [ -122.319889, 37.889960 ], [ -122.317657, 37.890976 ], [ -122.316027, 37.891180 ], [ -122.315941, 37.891925 ], [ -122.314568, 37.891925 ], [ -122.314825, 37.892466 ], [ -122.314739, 37.892466 ], [ -122.314310, 37.891992 ], [ -122.313709, 37.891925 ], [ -122.312765, 37.891247 ], [ -122.311735, 37.890434 ], [ -122.311392, 37.889960 ], [ -122.311220, 37.889960 ], [ -122.311134, 37.890299 ], [ -122.311049, 37.890231 ], [ -122.310877, 37.889757 ], [ -122.310190, 37.889147 ], [ -122.310104, 37.888944 ], [ -122.309847, 37.888809 ], [ -122.309504, 37.889147 ], [ -122.309332, 37.889757 ], [ -122.309074, 37.891315 ], [ -122.309074, 37.891518 ], [ -122.308903, 37.890502 ] ], [ [ -122.310190, 37.894769 ], [ -122.310619, 37.895108 ], [ -122.310705, 37.895514 ], [ -122.311134, 37.895582 ], [ -122.311306, 37.895785 ], [ -122.311134, 37.896056 ], [ -122.311563, 37.896192 ], [ -122.311563, 37.896734 ], [ -122.310705, 37.895785 ], [ -122.310019, 37.894769 ], [ -122.309246, 37.893076 ], [ -122.309160, 37.892399 ], [ -122.309504, 37.893482 ], [ -122.310190, 37.894769 ] ] ] } }
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3009", "NAME10": "Block 3009", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 265574, "AWATER10": 0, "INTPTLAT10": "+37.8905867", "INTPTLON10": "-122.3181131" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -122.308903, 37.890502 ], [ -122.308989, 37.888809 ], [ -122.309246, 37.887860 ], [ -122.309847, 37.888131 ], [ -122.311306, 37.889486 ], [ -122.315598, 37.889689 ], [ -122.315855, 37.889554 ], [ -122.327614, 37.889689 ], [ -122.327614, 37.891450 ], [ -122.327528, 37.891586 ], [ -122.327442, 37.891518 ], [ -122.327356, 37.890841 ], [ -122.325811, 37.890841 ], [ -122.325640, 37.890976 ], [ -122.325554, 37.891518 ], [ -122.325554, 37.892060 ], [ -122.325897, 37.892331 ], [ -122.325897, 37.892534 ], [ -122.324009, 37.892399 ], [ -122.323151, 37.891044 ], [ -122.322721, 37.890028 ], [ -122.319889, 37.889960 ], [ -122.317657, 37.890976 ], [ -122.316027, 37.891180 ], [ -122.315941, 37.891925 ], [ -122.314568, 37.891925 ], [ -122.314825, 37.892466 ], [ -122.314739, 37.892466 ], [ -122.314310, 37.891992 ], [ -122.313709, 37.891925 ], [ -122.312765, 37.891247 ], [ -122.311735, 37.890434 ], [ -122.311392, 37.889960 ], [ -122.311220, 37.889960 ], [ -122.311134, 37.890299 ], [ -122.311049, 37.890231 ], [ -122.310877, 37.889757 ], [ -122.310190, 37.889147 ], [ -122.310104, 37.888944 ], [ -122.309847, 37.888809 ], [ -122.309504, 37.889147 ], [ -122.309332, 37.889757 ], [ -122.309074, 37.891315 ], [ -122.309074, 37.891518 ], [ -122.308903, 37.890502 ] ] ], [ [ [ -122.310190, 37.894769 ], [ -122.310619, 37.895108 ], [ -122.310705, 37.895514 ], [ -122.311134, 37.895582 ], [ -122.311306, 37.895785 ], [ -122.311134, 37.896056 ], [ -122.311563, 37.896192 ], [ -122.311563, 37.896734 ], [ -122.310705, 37.895785 ], [ -122.310019, 37.894769 ], [ -122.309246, 37.893076 ], [ -122.309160, 37.892399 ], [ -122.309504, 37.893482 ], [ -122.310190, 37.894769 ] ] ] ] } }
|
||||
,
|
||||
{ "type": "Feature", "properties": { "STATEFP10": "06", "COUNTYFP10": "001", "TRACTCE10": "420300", "BLOCKCE10": "3007", "NAME10": "Block 3007", "MTFCC10": "G5040", "UR10": "U", "UACE10": "78904", "UATYP10": "U", "FUNCSTAT10": "S", "ALAND10": 3648, "AWATER10": 0, "INTPTLAT10": "+37.8971393", "INTPTLON10": "-122.3121267" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.311649, 37.896869 ], [ -122.312508, 37.896937 ], [ -122.312593, 37.897140 ], [ -122.312508, 37.897479 ], [ -122.312078, 37.897479 ], [ -122.311649, 37.896869 ] ] ] } }
|
||||
,
|
||||
|
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
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
@ -1 +1 @@
|
||||
#define VERSION "tippecanoe v1.11.4\n"
|
||||
#define VERSION "tippecanoe v1.11.5\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user