Skip to content

v0.5.3

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Jul 18:51

GeoPQ Workbench 0.5.3 makes the basemap a layer, and stops fetching
tiles for views you have already left.

The basemap is a layer now

It is the bottom layer of the map, so it belongs at the bottom of the
layers panel rather than in a menu. Its own row there: a visibility
checkbox, a list of every source, and an opacity slider.

Opacity is what a menu could never offer and what the basemap most
needs. It sits under your data, and fading it back is how you keep the
context without it competing with what you are actually looking at. It
persists with the rest of the layer context, and switching the basemap
off and on comes back to the source you had.

Tiles follow the view you are in

Zooming across several levels kept the earlier levels loading. The fetch
queue was a FIFO: every frame pushed its tiles onto the end, and the four
workers ground through the lot, so a zoom from z8 to z14 spent requests
on five views you had already left before it reached the one you were
looking at.

The queue is now replaced rather than appended to. Each pass writes
exactly what the current view wants, so anything queued for a view you
have left is dropped before a request is spent on it. Requests already in
flight cannot be taken back — a blocking read is not interruptible — but
there are at most four of those, and the tail is gone.

STAC collections grow as you pan

Parts were chosen once, at open, from whatever the viewport happened to
be, and the layer stayed frozen at that choice: pan somewhere else and it
showed nothing. Past sixteen intersecting parts the load refused outright
and told you to zoom in, so Overture's 512-part buildings collection could
not be opened from any view wide enough to want it.

A camera settle now looks for parts the viewport wants and the layer
lacks, opens up to eight of them — most-overlapping first, because a pan
should fetch what it is heading into before what it is only clipping —
and streams their geometry through the same path row refinement uses.

Fragments are numbered in global order, so appending them at the end
leaves every existing row-group index meaning exactly what it meant
before. That is what makes it cheap: the layer keeps the geometry and
decode state it already built, and the new parts simply extend the space.
No rebuild, no flicker.

Opening now takes the sixteen parts covering most of the view instead of
refusing. Measured against Overture: 512 parts, opens 16 with 80.4M rows,
and panning finds more to add.

Fixes

  • A failed tile marked for retry lost its attempt count, so the backoff
    restarted every time and a dead tile was re-requested every two seconds
    for the whole session, never reaching its attempt limit.
  • The basemap row sits at the foot of the layers panel instead of
    scrolling away with the list.

Install

Prebuilt binaries for macOS (Apple Silicon and Intel), Linux x86_64 and
Windows x86_64 are attached, each with a SHA-256 checksum. macOS builds
are signed and notarized.