Initial release of Geo Tools 0.1.0

This commit is contained in:
2026-09-01 02:55:06 +02:00
commit 2acdb66399
59 changed files with 8637 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# Accessibility
The workbench uses semantic landmarks, headings and labelled native controls, supports keyboard operation, visible focus, reduced-width layouts, and system/light/dark themes through the Toolbox shell. Results do not rely on colour alone.
+7
View File
@@ -0,0 +1,7 @@
# Architecture
Geo Tools is a static React/Vite application wrapped in the shared Toolbox shell. `geo/formats.ts` parses GeoJSON, GPX, KML or a narrow coordinate-CSV dialect into a project-owned `FeatureCollection` model containing only Point, LineString and Polygon geometries plus scalar properties. Conversion serialises that model and returns visible loss notes.
`geo/model.ts` validates WGS 84 coordinate ranges and enforces the collection-wide coordinate limit. `geo/analysis.ts` computes bounds, haversine line distance and elevation changes, and performs iterative DouglasPeucker simplification. The local sketch projects coordinates only into its own SVG viewport; it loads no basemap, tiles or projection service.
XML input is lexically bounded before DOM construction and rejects DOCTYPE, entity and stylesheet declarations. Version 0.1 uses no worker, storage or server API. Relative entry and asset URLs keep the build relocatable below a nested portal path.
+7
View File
@@ -0,0 +1,7 @@
# Privacy and security
Imported coordinates and generated exports stay in page memory. The app has no telemetry, analytics, account, persistence, map-tile request or other runtime network path. Names and properties are rendered as React text and escaped on XML export.
Text/file input is limited to 16 MiB and the common model to 200,000 coordinates. XML is rejected above 250,000 elements or 256 levels before DOM parsing; DOCTYPE, entity and XML stylesheet declarations are rejected. These controls bound supported input but are not a general XML sanitiser.
Coordinates are interpreted as WGS 84 longitude/latitude. There is no CRS transformation and the local SVG sketch is not a map projection. Distance is a spherical approximation, elevation gain/loss uses the supplied samples without smoothing, and conversion intentionally drops unsupported styles, extensions, geometry structure or properties as stated beside each result. Do not treat results as survey-grade measurements.