Point 3D Map Explorer at Postgres/PostGIS, MySQL, SQLite, SQL Server, BigQuery, or Google Sheets and every table with a geometry column — or even plain lat/long columns — is auto-discovered and served three ways: dynamic MVT vector tiles, OGC API Features, and an ESRI FeatureServer. No ETL, no per-vendor drivers.
A single in-process DuckDB engine ATTACHes each source read-only via its scanner/attach extension — postgres_scanner, mysql_scanner, the bundled sqlite, plus community mssql, bigquery, and gsheets. No per-vendor ADO.NET driver to ship.
GEOMETRY/WKB columns, BLOB columns recognized by st_geometrytype, and common names (geom/geometry/the_geom).POINT view via ST_Point(lon, lat, 4326) from lat/long pairs (flagged isLatLongVirtualized).# connect and discover spatial tables curl -X POST http://localhost:5059/api/connectors \ -H 'Content-Type: application/json' \ -d '{ "name":"prod-pg", "kind":"Postgres", "connectionString": "host=localhost port=5432 dbname=gis user=postgres password=secret" }' → profile saved, DPAPI-encrypted → collections discovered & served
Each discovered collection is exposed under /api/spatial/{dbId}/... — so ArcGIS Pro, QGIS, MapLibre, and any OGC client can consume your existing tables with no extra wiring.
/collections/{c}/tiles/{z}/{x}/{y}.mvt — fast PBF vector tiles generated on demand via DuckDB ST_AsMVT.
/collections/{c}/items?bbox=&limit=&filter= — modern RESTful GeoJSON with filtering and sorting.
/FeatureServer/{i}/query?where=&geometry= — drop it straight into an ArcGIS map.
Connection strings encrypted with Windows DataProtectionScope.CurrentUser to connectors.json; decrypted only in memory at connect time.
Sources are ATTACHed read-only — your authoritative stores are never written to from the desktop.
Community extensions fail gracefully (profile saved, lastError shown); only bundled official extensions are guaranteed offline.
| Group | Endpoint | Notes |
|---|---|---|
| Management | GET / POST /api/connectors | List / register a source profile |
| Management | POST /api/connectors/test | Validate before saving |
| Management | GET /api/connectors/{id}/collections | Discovered spatial collections |
| Spatial facade | GET /api/spatial/{dbId}/collections/{c}/items | OGC API Features (bbox, filter, sortby) |
| Spatial facade | GET /api/spatial/{dbId}/collections/{c}/tiles/{z}/{x}/{y}.mvt | Dynamic vector tiles |
| Spatial facade | GET /api/spatial/{dbId}/FeatureServer/{i}/query | ESRI FeatureServer query |
Base URL http://localhost:5059. Browser smoke test at /connectors-test.html. Npgsql is not used — by design the app relies on DuckDB's scanner extensions, not per-vendor ADO.NET.
Six database kinds, auto-discovered spatial tables, three serving facades — without moving a single row.