A schema-free, single-file WebGIS for exploring archaeological / landscape survey sites — no server, no build step, no data bundled in. Load your own point geojson and the tool infers the schema at runtime (fields, types, id), then builds a map, site cards, filters, charts and symbology on top of it. Built for landscape archaeology, but it doesn't assume any specific field set: it works with any georeferenced point dataset that has an id.
→ Open the tool — download this repo and open index.html in a browser, or enable GitHub Pages (see below) to open it from a link, no download required.
info: a.conte@uniroma1.it
Most territorial survey / atlas projects need the same basic things — a map, a site card, filters, a couple of charts — but every project has a different data schema. Purpose-built tools solve this once per project and then have to be rebuilt for the next one. SiteAtlas tries a different approach: no predefined schema, inferred at runtime from whatever geojson, csv, xls or xlsx is loaded first. See docs/ARCHITETTURA.md for the full reasoning.
- Bilingual interface: an IT/EN toggle in the top bar switches the whole interface instantly — labels, buttons, modals, chart editor, tooltips — no reload needed.
- Main layer from GeoJSON, CSV, XLS or XLSX: load a point geojson, or a spreadsheet with X/Y coordinate columns in any coordinate reference system (WGS84, any UTM zone, several European systems, or a custom proj4 definition) — the tool reprojects automatically and detects field types (numeric / categorical / text / date), only asking you to confirm the site-id field. Can be removed and reloaded without refreshing the page.
- Linked tables: csv or geojson joined to the main layer by id — enrich the site card, filters and charts. The join is one-to-many aware: a site with multiple linked rows (e.g. several chronological phases) keeps them all, none overwrites another.
- Visualization layers: other geojson files (routes, hydrography, catchment areas...) as independent overlays with color/opacity/visibility controls, auto-linked to the site card when they share an id.
- Dynamic filters: generated from every categorical field detected, with live result counts per option, and manual drag-to-reorder for category order everywhere it matters (charts, legends).
- Symbology: color and shape assignable to any categorical field, from the main layer or a linked table, with an auto-generated legend that follows the active filters. When a site has multiple values for the same field (one-to-many), the primary symbol stays fixed and the others surface on hover.
- Full-screen chart editor: bar, pie, mean-by-category, histogram, free-axis scatter, and grouped/stacked bar plots, with 5 selectable color palettes (including colorblind-friendly), per-category color overrides, on-chart value labels, custom axis labels, legend placement, and PNG/JPG export at a chosen resolution (screen/print/maximum) — ready to drop into a slide or a poster.
- Switchable basemap: OpenStreetMap, topographic, satellite, light — with adjustable opacity.
Vanilla JS, Leaflet for the map, Chart.js for the charts, PapaParse for csv table parsing — loaded from public CDNs. SheetJS (csv/xls/xlsx main-layer import) and Proj4js (coordinate reprojection) are bundled inline instead, so reprojection keeps working without a network connection. Single HTML file, no dependencies to install.
Working prototype, actively developed. Design decisions, trade-offs and the open roadmap are tracked in docs/ARCHITETTURA.md, release history in CHANGELOG.md.
docs/USO.md— step-by-step usage guide (English / Italiano)docs/ARCHITETTURA.md— design rationale, trade-offs, roadmap (English / Italiano)- A browsable HTML documentation site is included at
site/index.html
The tool interface itself ships with a built-in IT/EN toggle. Both written guides above are bilingual: a language link at the top of each file jumps to the English or Italian section.
If you use this tool in research, please cite it — see CITATION.cff. GitHub renders a "Cite this repository" button automatically from this file.
MIT — see LICENSE. No real dataset is included in this repository; a small fictional example dataset is provided in esempio/ purely to demonstrate the workflow.