Honua
// compatibility

Keep ArcGIS Pro, QGIS, and standards-based workflows working.

Honua serves familiar GeoServices REST and OGC endpoints from modern infrastructure. Keep the clients, maps, and operating habits your teams already know. During a pilot, maps keep using the current endpoint while you test Honua beside it. At cutover, repoint each map or app—or preserve the URL through your gateway when your routing setup allows it. One Honua deployment can serve ArcGIS and OGC clients at the same time, so mixed teams share a backend without replacing every desktop, dashboard, or integration.

Major client & workflow families
Clients
ArcGIS Pro & Esri clientsGeoServices REST
QGIS & OGC clientsOGC API · WMS · WMTS · WFS · WCS
Web maps & custom appstiles · REST · JavaScript SDK
Automation & agentsOData · gRPC · MCP · SDKs
Data paths
Operational dataPostGIS
Exchange formatsGeoPackage · FileGDB · GeoJSON · more
Cloud-native dataCOG · PMTiles · STAC · Zarr
// where it fits

Broad compatibility where users already work.

Honua covers the major desktop, web, service, and data workflows needed to move GIS without forcing a client reset. Start with the workflow that matters most and expand from there.

Desktop GIS
Keep everyday mapping in place.

ArcGIS Pro and other Esri clients connect through GeoServices REST. QGIS and standards clients connect through OGC APIs and classic OGC services for maps, features, tiles, and coverages. Know before you test: Esri FeatureServer editing (what ArcGIS Pro edits through) is a Pro entitlement; Community edits via OGC API Features, WFS-T, OData, and gRPC.

Apps & integrations
Use the interface that fits the job.

Web maps use feature and tile endpoints or the JavaScript compatibility SDK. Business applications use REST, OData, gRPC, or language SDKs. MCP gives tool-using agents a governed GIS surface. Check before you build: package availability differs by language — see SDK availability & compatibility for what is publicly installable today.

Data workflows
Bring the sources already in use.

Use PostGIS for read/write operations, connect supported relational sources for queries, import common GIS exchange formats, and serve cloud-native rasters, tiles, and catalogs from object storage.

// Documented exceptions are concentrated in long-tail operations and provider-specific behavior. See the exact operation matrix ↗

// operation-level answer

GeoServices parity, service by service.

The per-service summary of honua-server's operation parity matrix, rendered inline. Statuses come from the matrix's own vocabulary: Complete — every documented operation is supported; Partial — the operations exist, with documented gaps. Operation rosters in the matrix are generated from the server's endpoint registry; the status judgements are human-reviewed and drift-gated in CI.

GeoServices REST parity summary by service
ServiceParityImplemented surface (headline)Headline gaps
FeatureServerPartialQuery (7 output formats), edits, attachments, related records, domains, replication with incremental change tracking, contingent values, subtype-derived types/templates, 3D (Z/M) queries, true-curve input densification, estimates, calculate, validateSQL, append, bins, top features, generateRenderer, spatial analytics extensionsShared-template store and utility-network/asset data models deferred; curves are stored and re-emitted linear; no automated contingent-value import
MapServer + WMS/WMTSPartialExport, identify, find, legend, query, allowlisted dynamicLayers (workspace layers + join tables), tiles with cloud-storage cache, storage-backed exportTiles (ZIP, TPK, Compact Cache V2 / TPKX), generateKml, WMS 1.3/1.1.1, WMTS 1.0Live tile-cache management (seeding, expiry, quota); raw-SQL queryTable dynamicLayers; image/KML-image child resources
ImageServerPartialService metadata, exportImage, identify, tiles with cloud cache, catalog resources, find, measure, statistics/histograms, getSamples, project (incl. RPC image-CS warp), exportTiles, computeTiePoints, computeClassStatistics, WMTS 1.0, WCS 2.0.1 incl. registered-Zarr slice readsSource-native item metadata XML/KML image; shadow/photogrammetric height analytics; tile-cache management; transformed Zarr slice output; raw sensor/orientation mosaic inputs; automatic seamlines
Geometry ServiceCompleteRoot metadata plus all 23 ArcGIS geometry operationsNone at operation level; parameter-level caveats only
GeocodeServerPartialfindAddressCandidates, reverseGeocode, suggest, geocodeAddresses, outFields projection, outSR reprojection, magicKey suggest-to-candidate round-trip, category filteringforStorage / matchOutOfRange deferred (no backing provider models them)
GPServerPartialPrintingTools; generic adapter with catalog-backed task metadata, async submitJob, synchronous execute for the deterministic single-geometry family, job status/cancel/results over 96 seeded processesHeavyweight tasks stay async-only; env:* rejected on submitJob (sync execute honors env:outSR)
NAServerPartialRoute, service-area, closest-facility, OD-cost-matrix (cost-only), and location-allocation solves incl. barriers and dataset-backed travel modes; addressable network-dataset registryOD-matrix geometry output, further location-allocation problem types, and network editing with topology rebuild deferred; built-in topology driving-only unless operators map more cost columns
VectorTileServerPartialService metadata with a real LOD table, MVT tiles over the canonical tile pipeline, tilemap availability document, Mapbox GL style composed from the stored layer styleTiles carry the service's primary tiled publication only; availability is grid arithmetic; no sprite/glyph store; some hardcoded service metadata
VersionManagementServerPartial (experimental, off by default)Version list/create/alter/delete, reconcile/post with conflict policy and async jobs, inspectConflicts, resolveConflictsNo Esri edit/read session model; parentVersion ignored on create; Postgres-only mutations; every route 404s unless the versioning.branch capability is enabled
Catalog / REST InfoPartial/rest/services graph-backed, RBAC-filtered service directory/rest/info reports isTokenBasedSecurity: false, omits tokenServicesUrl; no folders; currentVersion deliberately not advertised
Portal SharingPartialgenerateToken, auth discovery, OAuth2 named-user flow (authorization_code + PKCE, rotating refresh tokens), opt-in client_credentials, optional JWT access tokens with introspect/revoke, read/search/community projectionsPortal/community/item documents partly hardcoded; small search grammar; group and item-sharing overlay is in-memory, single-node, never read back; item data returns the document, not the payload

// Rendered from docs/reference/compatibility/geoservices-parity.md ↗ at commit 1585115 (honua-server trunk, 2026-08-09). The full matrix answers per-operation and per-parameter, including a Stub category for spec-shaped routes whose backing model is deferred.

// coordinate systems

Coordinate systems & projections, as implemented.

What the source actually does with EPSG codes, reprojection, datums, and axis order — the first-five-minutes analyst questions, answered from code rather than a datasheet.

01 · Geometry & EPSG registry NetTopologySuite geometry; CRS definitions from PostGIS.

Geometry is NetTopologySuite (2.6.0). CRS definitions resolve at runtime from the connected PostGIS spatial_ref_sys catalog — any EPSG code in that catalog works, including State Plane and NAD83(2011) zones, and custom SRIDs you register there. Honua ships no in-process PROJ or EPSG database; OGC:CRS84, EPSG:4326, and EPSG:3857 are built in. On read-only providers (DuckDB, MySQL/MariaDB) only those three resolve — other SRIDs report unsupported rather than guessing.

02 · On-the-fly reprojection In-memory fast paths; PostGIS ST_Transform for everything else.

Identity and WGS84 ↔ Web Mercator (including Esri alias wkids such as 102100) transform in memory; every other SRID pair delegates to PostGIS ST_Transform, i.e. PROJ. Vertical datum transformation is not supported: an outSR carrying vcsWkid is rejected with an explicit error instead of being silently dropped.

03 · Datum shifts Esri-default geotransformations as auditable data.

An embedded catalog of Esri default geotransformations (5 entries at the mined commit: NAD83, NAD83(HARN), NAD83(NSRS2007), and NAD83(2011) → WGS84 as the Esri-default selections, plus NAD27 → NAD83 via NADCON grid shift) drives datum-transformation selection. Heavier datum/grid-shift reprojection ships as the transform.reproject geoprocessing job, which escalates to a native GDAL worker (ogr2ogr/gdalwarp with PROJ pipelines and grids).

04 · Axis order Explicit per-CRS axis order, version-aware per protocol.

Every resolved CRS carries an explicit axis order. CRS84 and GeoJSON stay longitude/latitude; URN/URI EPSG:4326 is latitude/longitude. WMS 1.1.1 BBOX is always x,y while WMS 1.3.0 honors the CRS's authority order; WFS 1.0 writes GML east-north while WFS 1.1/2.0 write the output CRS's authority order. srsName accepts EPSG:code, OGC URNs (including versioned and x-ogc forms), and opengis.net URIs.

Reprojection request parameters per protocol
ProtocolReprojection parameterNotes from source
GeoServices FeatureServerinSR / outSRGeoJSON and GeoArrow output are pinned to EPSG:4326; GeoParquet honors outSR for the 157 CRSs in an embedded PROJJSON catalog and errors on others; Web Mercator alias wkids are recovered in output.
GeoServices Geometry Serviceproject operationOne of the 23 implemented geometry operations; Esri-default geotransformations apply.
GeoServices GeocodeServeroutSRCandidate geometry reprojected on output.
GeoServices GPServerenv:outSRHonored on synchronous execute; env:* otherwise rejected on submitJob.
WMS 1.3.0 / 1.1.1CRS / SRSCRS:84 and EPSG codes accepted; the request bbox is reprojected to the layer's storage CRS before the feature query.
WFS 1.0 / 1.1 / 2.0srsNameEPSG code, URN, and URI forms accepted on queries; GML output writes srsName and axis order per protocol version.
OGC API Featurescrs / bbox-crsDefault CRS84; each collection advertises its storage CRS plus supported CRS list.
WCS 2.0.1per-coverage CRSSupported-CRS list resolved per coverage; native-CRS reads including registered Zarr slices.

// Extracted from public source at commit 1585115 (honua-server trunk, 2026-08-09) — not a versioned release contract. Not verified from source: a fixed count of supported EPSG codes — there is none to state, because serving-path coverage is exactly the spatial_ref_sys catalog of the connected PostGIS database. Primary sources: PostgresCrsRegistry.cs, PostGisCoordinateTransformService.cs, WellKnownCoordinateTransformService.cs, EsriDatumTransformationCatalog.cs, GeoParquetProjJsonCatalog.cs, the WMS/WFS handlers, and GdalVectorReprojectJobExecutor.cs.

// standards evidence

952/952 across 11 OGC suites.

The dated test scope, results, and audit trail live with the documentation.

Open the standards evidence when you need the detail.
// field and mobile · not yet

Field and mobile: public source, not a shipping product.

What exists today, stated plainly.

Offline sync and device workflows are not available as a supported product today — some offline-sync server routes are not yet implemented. What is public today is source code you can read and build — not a supported product: honua-collect ↗ (offline-first field data collection, Elastic License 2.0), honua-mobile ↗ (MAUI-first mobile SDK with a GeoPackage offline foundation), and honua-studio ↗ (natural-language map-app builder). Read the code, build it, and file issues — but do not plan a field deployment on it yet.

// next

Keep the client.
Move the service.

Edition boundary to know before a pilot: Esri FeatureServer editing (applyEdits / add / update / delete — the surface ArcGIS Pro edits through) is a Pro entitlement; the free Community edition edits through open protocols instead (OGC API Features, WFS-T, OData, gRPC). Recorded CI interop lanes exercise a desktop QGIS lane against WMS, WMTS, WFS, and OGC API Features and a desktop ArcGIS lane against FeatureServer and MapServer — see the dated lane records on each capability's evidence page.