Only detect longitude wraparound within each ring. (#150)

* Only detect longitude wraparound within each ring.

Between rings it's OK to jump around from one side of the world
to the other.

* Add test

* Update changelog
This commit is contained in:
Erica Fischer
2023-10-17 12:04:47 -07:00
committed by GitHub
parent 0ca14086a9
commit e1c665b35d
5 changed files with 43 additions and 12 deletions
+4
View File
@@ -1,3 +1,7 @@
# 2.35.0
* Fix a bug in --detect-longitude-wraparound when there are multiple rings
# 2.34.1
* Further improvements to tile-join speed
+5
View File
@@ -325,6 +325,7 @@ static long long scale_geometry(struct serialization_state *sst, long long *bbox
long long y = geom[i].y;
if (additional[A_DETECT_WRAPAROUND]) {
if (geom[i].op == VT_LINETO) {
x += offset;
if (has_prev) {
if (x - prev > (1LL << 31)) {
@@ -338,6 +339,10 @@ static long long scale_geometry(struct serialization_state *sst, long long *bbox
has_prev = true;
prev = x;
} else {
offset = 0;
prev = x;
}
}
if (x < bbox[0]) {
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,6 +1,6 @@
#ifndef VERSION_HPP
#define VERSION_HPP
#define VERSION "v2.34.1"
#define VERSION "v2.35.0"
#endif