Table of Contents

Namespace LansMap.Core.Markers

Classes

ClusterCellGrid

Static, build-once spatial index over a cluster list's centroids: every occupied cell's members sit in one contiguous run of a shared array, found by binary search instead of a hash probe.

ClusterCentroidGrid

Grid spatial index over densely numbered ground points, backed entirely by flat pooled arrays: an open-addressed cell table, one shared bucket arena, and per-id side arrays. Serves the cluster build's two internal grids, where ids are consecutive from zero and no point has altitude.

ClusterHierarchy

Every integer zoom level's clusters, built once from a marker store and then queried per view, so panning or crossing a zoom level is a lookup instead of a fresh clustering pass.

MarkerClusterer
MarkerInfoStore
MarkerMath
MarkerPicker
MarkerPlacement

Where a prefab-tier marker sits in view depth, and how big it is drawn there, so it stays aligned with the tilted map view.

MarkerSpatialIndex

Quickly finds all markers in a geographic region without checking every marker. Grid spatial index over marker positions in normalized mercator space, so a viewport-sized query costs the cells the rect touches rather than a scan of every stored marker.

MarkerStore

The bulk-tier marker collection: a flat array of MarkerInstanceData plus a free list, sized for tens of thousands of markers uploaded to the GPU as one buffer.

MarkerViewportSet

Structs

ClusterSeed

One input to a cluster build pass: a position, how many markers it stands for, and the id to record as its membership entry.

MarkerCluster
MarkerHandle

A live reference to one marker in a specific MarkerStore: the store plus the id Add(LatLon, double, float, MarkerSizeMode, uint, MarkerShape, bool, float, float, MarkerAltitudeMode) returned for it. Property-like members forward to the store's own Set*/read paths, so a caller already holding a handle can write handle.ShowStem = true instead of store.SetShowStem(id, true).

MarkerInfoStore.HoverStyle
MarkerInstanceData

All the data needed to draw one marker on the map. One bulk-tier marker as the CPU holds it: position, size, style and flags for a single instance in a MarkerStore.

MarkerRef

A name for one marker that works for both tiers: bulk GPU instances and prefab GameObjects. It is not a base class and not a store.

Enums

MarkerAltitudeMode

How a marker's authored altitude is resolved against sampled ground. See ResolveAltitudeMercator(MarkerAltitudeMode, double, LatLon, IElevationSampler) for the resolution logic.

MarkerShape

Options for what shape each marker is drawn as. The built-in procedural marker shapes, drawn as signed distance fields in the marker shader so they stay crisp at any size.

MarkerSizeMode

Whether a marker's size stays constant on screen or on the ground as you zoom. How a marker's SizeParam is interpreted, and therefore whether the marker keeps a constant size on screen or a constant size on the ground.

MarkerTier

Which marker store a MarkerRef names. Bulk is a GPU instance on Map.Markers. WorldBulk is a GPU instance on a tabletop WorldMarkers store that is not that same object. Prefab is a GameObject, whether it stands on a screen map or a table.