Tiled Vector Layer
Reusable base for tiled vector layers (WFS features, MVT vector tiles, OSM buildings). Owns the parts every such layer shares so they aren't reimplemented per layer:
Selection — a screen-space-error quadtree over a LevelSet (
Tile.mustSubdivide+ frustum culling), the same machinery the imagery layer uses; the tile scheme (geographic vs Web-Mercator slippy) is the caller's LevelSet/TileFactory.Transitions — each frame doRender assembles a single non-overlapping cut: for every visible ground cell it draws the best-available tile, substituting a coarser ancestor (zoom-in) or finer resident descendants (zoom-out) while the ideal tile loads. A tile is RENDERED or REFINED, never both, so there is no blank gap and no double-paint of translucent fills.
Lifecycle — an LRU content cache, an in-flight
pendingset, exponential backoff, an off-thread fetch → render-thread drain channel, stale-while-revalidate invalidation, and globe-state invalidation.
Subclasses provide only the content type C and three things: how to loadTileContent, how to renderTileContent, and (if the content owns GPU buffers) how to release it in onContentEvicted. The thin per-frame seams beginFrame/endFrame/prepareTileForRender cover cross-tile passes (e.g. MVT label collision) and per-frame content tweaks (e.g. MVT line zoom-scale). Always close.
Type Parameters
the per-tile content type held in the cache (e.g. List<Renderable>, a batched tile).
Inheritors
Properties
Tile keys currently in fetch-failure backoff.
Screen-space-error knob: lower = finer (more, smaller on-screen tiles); higher = coarser.
Tiles currently resident in the content cache (visible + fallback).
Cap on launched-but-unfinished fetch Jobs (vs semaphore, which gates concurrent round-trips); bounds the queue so a huge changing cut can't pile up unbounded coroutines + HTTP/SSL → OOM. Over-cap tiles re-request a later frame.
Tiles with a fetch coroutine in flight.
Vector content bounding sector — real data availability can be smaller than the tile grid. Full sphere by default; tiled layers skip tiles outside it. Cache reopen narrows it from the persisted content bbox; bulk download widens and persists it. Mirrors earth.worldwind.globe.elevation.coverage.ElevationCoverage.sector.
Functions
Makes a fresh copy carrying only this layer's configuration; caches and fetch scope are not shared.
See setOfflineOnly on TiledImageLayer. Dispatches by VectorLayer subtype to reach the right source field. No-op for unknown subtypes.