Files, tiles, features and 3D content

Open the mission data.
Keep working offline.

Bring cached basemaps, GIS vectors, imagery, terrain and 3D models into a controlled local data profile. Query and transform near the operator, expose selected vectors through in-app FeatureServer handlers, and stream only the tiles or features the current view needs.

Cached mapsGPKG · MBTiles · PMTiles · VTPK · TPKX
GIS vectorsGeoPackage · GeoJSON · Shapefile · KML
3D content3D Tiles · B3DM · GLB/glTF · I3S/SLPK
Local servicesDuckDB Spatial + FeatureServer-shaped handlers
VECTOR FEATURES

Query records, geometry and attributes

Load GeoPackage or other supported vector data through DuckDB Spatial, normalize fields and coordinate systems, register layers, then request only the extent, attributes and record page needed by the current operation.

CACHED + DYNAMIC TILES

Move pixels and vectors by tile

Address raster or vector content by zoom/x/y, keep hot tiles in memory, persist selected areas to disk and prefetch around the camera. Dynamic MVT or raster-tile adapters reduce large datasets before they reach the renderer.

3D SCENE CONTENT

Stream levels of detail, not whole cities

Use 3D Tiles or I3S scene services for spatially indexed LOD, load local GLB/glTF models for placement, and convert validated GLB payloads to B3DM when that is the required 3D Tiles content path.

EDGE PERSISTENCE

Keep operational state near the user

Persist selected features, TAK context, downloaded raster tiles, converted model assets and application state locally so a configured workflow can continue through intermittent or unavailable connectivity.

Engineering boundary: Windows x64 is the current native-binary baseline. Direct package readers, local HTTP transport, SDK compatibility, file licensing, write behavior and cache limits are validated for each target device before an offline profile is released.

Offline format catalog

Know what opens directly, what is normalized and what needs an adapter.

“Supported” is not one binary claim. A format may be read directly, streamed by an SDK, converted during packaging, or integrated through a customer-specific adapter.

Core or repository-backed path Delivery profile Adapter or conversion required
Content familyFormatsRuntime pathDelivery context
Cached raster + vector maps
Profile
GeoPackage tile tables (.gpkg), MBTiles (.mbtiles), PMTiles (.pmtiles)Read tiles by z/x/y; retain a bounded memory cache; persist selected tiles; prefetch adjacent levels; decode PNG/JPEG/WebP or MVT according to the package.The repository contains the cached-tile design and loader modules, but the current Unity baseline requires the offline module to be promoted, compiled and device-tested before release.
Esri tile packages
Adapter
Vector Tile Package (VTPK), Tile Package (TPK/TPKX)Use a target SDK reader or extract/convert the package into an approved vector/raster tile cache. Preserve style resources, labels, tile scheme, spatial reference and scale range.VTPK and TPKX are not interchangeable file extensions. Package version, compact-cache layout, encryption and licensing are checked against a representative customer file.
GIS vector features
Core + profile
GeoPackage vectors, GeoJSON; delivery adapters for Shapefile, KML/KMZ, CSV coordinates, GeoParquet or FlatGeobufRead into DuckDB Spatial or a staging table, map the object ID and fields, validate geometry/CRS, create spatial indexes, and expose queries or edits through the in-app feature layer.GeoPackage and GeoJSON read/query paths are present. Direct GeoPackage CRUD and several exchange formats still require format-specific validation or an external GDAL-capable preparation step.
3D tiles + models
Mixed path
3D Tiles (tileset.json, B3DM), GLB/glTF, Esri I3S scene services and SLPKStream 3D Tiles/I3S by LOD; place GLB/glTF models locally; cache converted GLB-to-B3DM content. Use an SLPK-capable SDK or unpack/convert SLPK during content preparation.3D Tiles, I3S service and GLB/B3DM paths are repository-backed. Direct SLPK package ingestion is a delivery adapter, not an assumed drop-in capability.
Imagery + elevation
Profile
GeoTIFF/COG, NITF, RPF, DTED and image-service exportsWindow or tile imagery by extent and resolution; build overviews; cache GPU-ready tiles; decode defense metadata where required; sample elevation separately from visual imagery.ImageServer exportImage/XYZ caching is present. COG, NITF/RPF and DTED readers are selected and validated for classification, datum, compression and target hardware.

Local in-app FeatureServer

Turn local vector data into a queryable application service.

The active code provides ArcGIS REST-shaped service, layer, query, find, identify, CRUD and spatial-analysis handlers backed by local DuckDB structures. A delivery profile can expose those handlers through an embedded loopback HTTP transport when another SDK or local client needs URL-based access.

01 / INGEST

Open and inspect the dataset

Read a GeoPackage layer or supported vector source, inspect geometry type, fields and spatial reference, reject invalid records, and transform to the working coordinate system when required.

02 / REGISTER

Create the local service contract

Assign a stable layer ID, object-ID field, display field, geometry type, field schema and capabilities. Create or update the DuckDB tables and spatial indexes used by the handler layer.

03 / QUERY + EDIT

Use Esri-shaped requests in the app

Filter attributes, request selected fields, page results, identify at a point, search by name, and run buffer or relationship operations. Apply edits to the local DuckDB layer when the delivery profile permits writing.

REPRESENTATIVE LOCAL ROUTES

GET /arcgis/rest/services/Mission/FeatureServer

GET /arcgis/rest/services/Mission/FeatureServer/0

GET /arcgis/rest/services/Mission/FeatureServer/0/query
    ?where=status%3D'OPEN'
    &outFields=id,name,status
    &returnGeometry=true
    &resultOffset=0
    &resultRecordCount=500

GET /arcgis/rest/services/Mission/FeatureServer/0/identify
    ?geometry={"x":-77.04,"y":38.90}
    &tolerance=15

POST /arcgis/rest/services/Mission/FeatureServer/0/applyEdits

Current boundary: the repository implements the request handlers; its HTTP server startup is presently simulated. A production loopback server, authentication policy and client compatibility test are part of the target delivery profile. Direct edits back into a GeoPackage file are not claimed by the current baseline.

Big-data rendering patterns

Query by extent. Render by tile. Update by change.

Large datasets remain usable when the application reduces data before creating Unity objects.

DYNAMIC VECTOR TILES

Generate MVT for the visible tile

Filter by tile bounds, clip and simplify geometry for the requested zoom, encode attributes into MVT, and cache the result. This delivery adapter is appropriate when raw feature counts exceed practical scene-object limits.

DYNAMIC RASTER TILES

Render only the required resolution

Use image-service export, COG windows or a raster adapter to create XYZ tiles for the current extent and zoom. Cache decoded textures and evict tiles outside the configured memory budget.

PAGED FEATURES

Keep feature semantics where needed

Use bounding-box filters, spatial indexes, selected outFields, offsets and record limits. Preserve full feature geometry for identify, edit and analysis while using tiles for high-volume background context.

01OPENpackage · file · database
02INDEXschema · CRS · spatial index
03FILTERextent · attributes · LOD
04TILEMVT · raster · 3D LOD
05CACHEmemory · disk · package
06RENDERvisible content only

No vague “supports everything” promise.

For every supplied file we record the reader, write behavior, coordinate system, geometry and attribute coverage, styling path, tile scheme, cache policy, device target and offline test result. That produces an auditable content profile instead of a marketing-only format list.

Bring the actual files.
Prove the offline profile.

We’ll test representative GeoPackages, tile packages, imagery and 3D content against the target device, data volume and disconnected workflow.

Plan a data evaluation