Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up and test drop rate logic #120

Draft
wants to merge 41 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
daf16e9
Factoring out dot-dropping for unit testing
e-n-f Jul 17, 2023
b3e02b7
I'm not sure how this ever worked before
e-n-f Jul 17, 2023
5d76df2
Multiply error by the interval to avoid repeated division
e-n-f Jul 17, 2023
c3086ea
Update tests that have changed as a result of this logic cleanup
e-n-f Jul 17, 2023
81a4342
Clean up imprecise math
e-n-f Jul 17, 2023
eb3b57d
Avoid initializing drop state with known-bad values
e-n-f Jul 17, 2023
52bd4a9
Use pow(), not powf()
e-n-f Jul 18, 2023
9b29252
Fix test, I hope
e-n-f Jul 18, 2023
5194d29
Getting closer to a useful test
e-n-f Jul 21, 2023
e11583d
Fix hash collision in the string pool (#239)
e-n-f Jun 7, 2024
939579e
Update README (#244)
drewhgood Jul 3, 2024
47e774a
Improve the appearance of coalesce-densest-as-needed tiles (#247)
e-n-f Jul 16, 2024
50deb9c
Add multi-tile input to tippecanoe-overzoom (#249)
e-n-f Jul 23, 2024
bc3ef87
Add `--generate-variable-depth-tile-pyramid` option (#251)
e-n-f Aug 6, 2024
d891ca7
Fix latitude bboxes for features that extend beyond the mercator plan…
e-n-f Aug 8, 2024
40bb4ff
Be more careful to retry when the feature count is exceeded (#257)
e-n-f Aug 20, 2024
f44230f
Fix a bug when reading MultiLineString from .fgb file (#241)
RizkiAlhamid Aug 28, 2024
f3b575e
Minor dockerfile optimizations (#240)
emonty Aug 28, 2024
5b18eea
Work in progress on binning features in overzoom (#258)
e-n-f Sep 5, 2024
51fcf14
Fix bad interaction between dynamic dropping and limiting by truncati…
e-n-f Sep 5, 2024
84f6e88
Another try at fixing longitude wraparound for bins (#261)
e-n-f Sep 10, 2024
5342428
Pass bin IDs through to the output (#266)
e-n-f Sep 17, 2024
c5f2f0d
More work on plumbing attribute accumulation through (#263)
e-n-f Sep 20, 2024
4822d02
Fix count accumulation in overzoom (#272)
e-n-f Sep 25, 2024
66e5d66
Another round of binning fixes (#274)
e-n-f Sep 30, 2024
23c6559
Remove buggy optimization to avoid reclipping in overzoom (#275)
e-n-f Oct 1, 2024
8409bf9
Top-level null filter now evaluates to true (#277)
e-n-f Oct 2, 2024
78661f1
Binning by ID (#276)
e-n-f Oct 3, 2024
28efc40
Choose the megatile features from those that will be in the next N zo…
e-n-f Oct 17, 2024
120b8f4
Fixes bool atrributes coming from FGB files (#289)
youngpm Nov 1, 2024
b3b89e1
Performance optimizations for binning (#283)
e-n-f Nov 1, 2024
23667bb
Reduce memory consumption from attribute accumulation (#290)
e-n-f Nov 5, 2024
794ae2b
Tippecanoe-decode and tippecanoe-overzoom changes to improve binning …
e-n-f Nov 8, 2024
6d46578
Avoid crash if the first bin gets clipped away (#294)
e-n-f Nov 13, 2024
905b58c
Reducing attribute tagging within tippecanoe-overzoom (#296)
e-n-f Nov 15, 2024
11e3196
Raise tippecanoe-decode tile size limit to 250 MB (#299)
e-n-f Nov 21, 2024
dcc616d
Adding optional clipping to tippecanoe-overzoom (#298)
e-n-f Nov 27, 2024
1d81935
mbtiles.cpp: isinf to std::isinf (#303)
barracuda156 Dec 1, 2024
bdfb06c
Make tippecanoe-overzoom accept filters from a file (#307)
e-n-f Dec 5, 2024
a8bd7ac
Add macOS CI jobs (#310)
nightlark Dec 6, 2024
6169c63
Merge branch 'clean-up-feature-dropping' into droprate
e-n-f Dec 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,18 @@ on: [push]

jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
version: ['Release', 'Debug']
steps:
- uses: actions/checkout@v3
- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt-get install libsqlite3-dev
- name: Install dependencies (macOS)
if: runner.os == 'macOS'
run: brew install sqlite3
- run: uname -a; BUILDTYPE=${{ matrix.version }} make
- run: make test
- run: make test
121 changes: 121 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,124 @@
# 2.72.0

* Add --clip-polygon-file and --feature-filter-file options to tippecanoe-overzoom

# 2.71.0

* Add --clip-bounding-box and --clip-polygon options to tippecanoe-overzoom

# 2.70.1

* Raise tippecanoe-decode limit on the size of individual tiles

# 2.70.0

* Performance improvements to tippecanoe-overzoom with attribute exclusion

# 2.69.0

* Fix crash when the first bin gets clipped away

# 2.68.0

* Adds `--no-tile-compression` option to `tippecanoe-overzoom`
* Make `tippecanoe-overzoom` clip the output tile to the tile buffer after assigning points to bins
* Adds `--include`/`-y` option to `tippecanoe-decode` to decode only specified attributes
* Cleans up some inconsistent handling of variable tile extents in overzooming code
* Speeds up overzooming slightly in `tile-join` by doing less preflighting to discover which child tiles contain features

# 2.67.0

* Reduce memory consumption of duplicate attribute names in `serial_feature`
* The maxzoom guess calculation now takes into account the number of duplicate feature locations

# 2.66.0

* Only bin by ID, not by geometry, if --bin-by-id-list is specified
* Do attribute accumulation in overzoom in mvt_value instead of converting to serial_val
* Fix bool values read from flatgeobuf sources (#289)

# 2.65.0

* Improve spatial distribution of --retain-points-multiplier features
* Add --preserve-multiplier-density-threshold option to maintain minimum density of multiplier features

# 2.64.0

* Add --bin-by-id to overzoom

# 2.63.0

* Top-level null filter now evaluates to true

# 2.62.6

* Remove buggy optimization to avoid reclipping in tippecanoe-overzoom

# 2.62.5

* More aggressive binning when points fail the point-in-polygon test

# 2.62.4

* Fix accumulation of count and mean in overzoom

# 2.62.3

* Summary statistics with --accumulate-numeric-attributes make it from tiling through to binning
* Prefix can be specified for --accumulate-numeric-attributes
* Added --exclude and --exclude-prefix to tippecanoe-overzoom

# 2.62.2

* Pass feature ID through with bins

# 2.62.1

* More work in progress on binning point features in overzoom

# 2.62.0

* Fix another bad interaction, this time between dropping-as-needed and --limit-tile-feature-count

# 2.61.0

* Added --calculate-feature-index option
* Added "count" accumulation type to --accumulate-attribute
* Work in progress on binning of point features in overzoom. Not ready for use yet.

# 2.60.0

* Fix bad interaction between --retain-points-multiplier and stopping early when the tile feature limit is reached
* Fix another bad interaction between --retain-points-multiplier, dropping-as-needed, and variable depth tile pyramids
* Add optional BUILD_INFO string to version
* Reorder overzoom logic to clip before dealing with multiplier and filters
* When --generate-variable-depth-tile-pyramid is in use, report the actual highest zoom generated as tileset maxzoom

# 2.59.0

* Correct `antimeridian_adjusted_bounds` latitude calculation when vertices extend beyond the edge of the Mercator plane

# 2.58.0

* Add --generate-variable-depth-tile-pyramid option
* Add --line-simplification and --tiny-polygon-size options to tippecanoe-overzoom
* Adjust tile feature limit for --retain-points-multiplier
* Tune convergence rate for --coalesce-densest and --drop-densest
* Fix overreported drop and coalesce counts in strategies

# 2.57.0

* Add multi-tile input to tippecanoe-overzoom

# 2.56.0

* Rework --coalesce-densest-as-needed and --drop-densest-as-needed to look better
* Add --maximum-string-attribute-length option

# 2.55.0

* Fix hash collisions in the string pool

# 2.53.0

* Stop trying to add features to the tile after the feature limit is reached
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM ubuntu:22.04 AS tippecanoe-builder

RUN apt-get update \
&& apt-get -y install build-essential libsqlite3-dev zlib1g-dev
&& apt-get -y install make gcc g++ libsqlite3-dev zlib1g-dev

COPY . /tmp/tippecanoe-src
WORKDIR /tmp/tippecanoe-src
Expand All @@ -13,7 +13,7 @@ CMD make test
# Using multistage build reduces the docker image size by alot by only copying the needed binaries
FROM ubuntu:22.04
RUN apt-get update \
&& apt-get -y install libsqlite3-dev zlib1g-dev \
&& apt-get -y install libsqlite3-0 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=tippecanoe-builder /tmp/tippecanoe-src/tippecanoe* /usr/local/bin/
COPY --from=tippecanoe-builder /tmp/tippecanoe-src/tile-join /usr/local/bin/
Expand Down
Loading
Loading