If you already have a parcel boundary in a digital format, you can skip manual drawing and load it directly through the FileUploader component in the sidebar. GeoViable accepts the five most common spatial file formats used in land planning workflows in Spain. All parsing happens entirely in the browser — your file is never sent to the server just for format conversion, which means the upload step works offline and produces no network latency.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/danizd/geoviable/llms.txt
Use this file to discover all available pages before exploring further.
Supported file formats
| Format | Extension | Notes |
|---|---|---|
| GeoJSON | .geojson | RFC 7946, coordinates must be in WGS84 (EPSG:4326) |
| KML | .kml | Standard Keyhole Markup Language; Polygon placemarks processed; LineString placemarks accepted as a fallback |
| KMZ | .kmz | Compressed KML — a ZIP archive containing a .kml file |
| Shapefile | .zip | ZIP archive containing at minimum .shp, .dbf, and .shx files |
| DXF | .dxf | Only closed LWPOLYLINE and POLYLINE entities are processed |
Shapefiles must be packaged as a
.zip archive. The ZIP must contain the .shp, .dbf, and .shx component files at minimum. A .prj file is recommended so the coordinate system is known, though GeoViable assumes WGS84 if the .prj is absent. Do not upload the .shp file alone — it will not be recognized.How to upload a file
The FileUploader provides two equivalent methods:- Drag and drop — drag your file from your file manager or desktop and drop it anywhere inside the dashed drop zone labelled “Arrastra un archivo aquí o haz clic para seleccionar”.
- Click to browse — click anywhere on the drop zone to open a native file picker dialog. The accepted extensions (
.geojson,.json,.kml,.kmz,.zip,.dxf) are pre-filtered in the dialog.
.GEOJSON, .DXF) appears below the drop zone alongside the file name, confirming which parser will be used.
Client-side parsing flow
GeoViable detects the file format from its extension and routes it to the appropriate parser. No server round-trip is needed for this step.Parser details by format
| Format | Library | Behaviour |
|---|---|---|
.geojson / .json | Native JSON.parse() | Direct parse; accepts Feature, FeatureCollection, or raw Polygon/MultiPolygon geometry |
.kml | Browser DOMParser + internal converter | Reads <Polygon> <coordinates> elements from <Placemark> tags, including inner boundary holes |
.kmz | JSZip → extract .kml → DOMParser | Opens the ZIP, locates the first .kml entry, then applies the KML parser |
.zip (Shapefile) | shpjs | Reads the SHP + DBF + PRJ from the ZIP buffer in one call via ArrayBuffer |
.dxf | dxf-parser | Parses all entities; only LWPOLYLINE / POLYLINE with shape: true or first-equals-last vertices are kept |
Validation applied after parsing
Once the file is parsed into GeoJSON, the same validation rules that apply to drawn polygons are enforced:| Constraint | Limit | Error message |
|---|---|---|
| Polygon present | At least one polygon | El archivo no contiene un polígono válido |
| Single polygon | Exactly one feature | Solo se permite un polígono por análisis |
| Maximum area | 100 km² | El polígono excede el área máxima permitida (100 km²) |
| Maximum vertices | 10,000 | El polígono tiene demasiados vértices (máximo 10.000) |
| Geographic bounds | Galicia bounding box | El polígono se encuentra fuera de los límites de Galicia |
#334155 border and 0.15 fill opacity used for drawn polygons, fitBounds is called to zoom to the parcel, and the area is shown in the sidebar.
Example GeoJSON input
- Minimal GeoJSON Feature
- GeoJSON FeatureCollection
The simplest valid input: a
Feature object with a Polygon geometry in WGS84 coordinates [longitude, latitude].