mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-03-24 04:45:17 +00:00
Make calculation of child tile overlap match clipping behavior.
Coordinates that are right on the tile boundary appear in both adjacent tiles. Make tippecanoe-decode also use exact edge coordinates instead of half-pixel locations.
This commit is contained in:
parent
45043922e7
commit
7aa27b7f4c
@ -194,8 +194,8 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
|
||||
g += 2;
|
||||
|
||||
long long scale = 1LL << (32 - z);
|
||||
long long wx = scale * x + (scale / extent) * (px + .5);
|
||||
long long wy = scale * y + (scale / extent) * (py + .5);
|
||||
long long wx = scale * x + (scale / extent) * px;
|
||||
long long wy = scale * y + (scale / extent) * py;
|
||||
|
||||
double lat, lon;
|
||||
tile2latlon(wx, wy, 32, &lat, &lon);
|
||||
|
6
tile.cc
6
tile.cc
@ -376,8 +376,10 @@ void rewrite(drawvec &geom, int z, int nextzoom, int maxzoom, long long *bbox, u
|
||||
// Division instead of right-shift because coordinates can be negative
|
||||
bbox2[k] = bbox[k] / (1 << (32 - nextzoom - 8));
|
||||
}
|
||||
bbox2[0] -= buffer;
|
||||
bbox2[1] -= buffer;
|
||||
// Decrement the top and left edges so that any features that are
|
||||
// touching the edge can potentially be included in the adjacent tiles too.
|
||||
bbox2[0] -= buffer + 1;
|
||||
bbox2[1] -= buffer + 1;
|
||||
bbox2[2] += buffer;
|
||||
bbox2[3] += buffer;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user