tile tool cleanup: the #142 review's non-blocking items #144
Labels
No labels
blocked
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap#144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope:
importer/tiles.go(the #139 tile tool) andbench/results/— the non-blockingitems from the #142 review (comment 1643, 2026-08-16). The review's three blocking-ish
items were already fixed on the #127 branch and are in main (docs naming deleted flags,
corner-vs-centroid docs,
--checknow asserts extent == mvtExtent and rejectsgeometry-less features). These are the rest, all confirmed still open in main:
--sizehas no layer filter.--size-zoomsexists but no--size-layer, someasuring one layer runs all twelve, each a full-table pass. This is exactly the
#127 workflow the tool exists for (the reviewer ended up writing raw SQL instead).
Add
--size-layer <name>(comma-separated, likeimport --layer).candidateTileshas no LIMIT whileprobeTilesamples 200 000 rows. It scansthe whole table for every layer at every zoom in the window —
tiles --size conf/semap.yamlwalks Sweden's 5.4M-row z13 cover partition. A LIMIT (or asensible cap) is needed; the weight ranking is a heuristic anyway.
sizeOneZoomappendsmeasured{cx, cy, 0, 0}on error and the top-N sort discards it silently. Ameasurement tool should not turn an error into a plausible-looking zero — count
and report it the way
--check's MISSING is.(
bench/results/2026-08-16_478f205_tiles.json); other records are 1–2 kB andmake tile-benchadds one per run. Either gitignore*_tiles.json(and removethe committed one), drop the
SetIndent, or commit the combo summaries and keepper-tile detail local.
parseIntStrictis not strict:fmt.Sscanf(s, "%d", &n)stops at the firstnon-digit and reports success, so
--size-zooms 5xsilently means5. Rejecttrailing garbage.
checkTileAtZoomre-implementstileTarget.tableAtZoominline — the sameprefix derivation, ten lines below the method that already does it.
static: truelayer would be silently skipped.tileTargetsonly skipsl.Shared != nil; a static layer'stableName(maxz)has no_<z>suffix, so theprefix derivation builds a nonexistent table name and the layer reports EMPTY
rather than being checked or deliberately skipped. Latent — no config declares one
today — but EMPTY is not fatal, so it would never be noticed.
decodeMVTTilenever returns a non-nil error but three callsites check it;
probeTilecomputesn := math.Pow(2, z)and passes it toSprintfas an argument the format string never references;benchComboscallsSweden's whole-country probe
stockholm-whole-countrywhile the others are named<country>-whole-country.From the #142 review (comment 1643). All are correctness/hygiene on the new tool; none
changes the R121 check's semantics (which is already green on all five configs).
Result is in #145 — #145; the review note is the PR description.