GeoJSON
Use this skill for practical GeoJSON inspection and validation.
This skill focuses on safe read-only analysis of GeoJSON structure and coordinates. For deterministic GIS conversion, reprojection, clipping, or raster/vector processing on files, hand off to qgis.
What This Skill Does
- Validate whether a JSON file or payload is plausible GeoJSON.
- Summarize top-level type, feature count, geometry types, and bbox.
- Flag obvious coordinate-range issues for longitude/latitude style data.
- Explain common GeoJSON mistakes such as malformed
FeatureCollection, missing geometry, or wrong coordinate nesting.
- Recommend when
EPSG:4326 assumptions are safe and when CRS clarification is required.
Standard Workflow
- Confirm whether the input is a file path or inline JSON.
- Parse the JSON and identify the top-level GeoJSON type.
- Count features and geometry types.
- Compute bbox from coordinates when possible.
- Flag likely coordinate problems:
- out-of-range longitude/latitude
- swapped
lat,lon vs lon,lat
- mixed geometry structures
- If the user needs file transformation, reprojection, or editing, switch to
qgis.
Practical Commands
Summarize a GeoJSON file
python3 {baseDir}/scripts/geojson_tool.py summary --file ./data/sample.geojson
Validate a GeoJSON file
python3 {baseDir}/scripts/geojson_tool.py validate --file ./data/sample.geojson
Summarize inline GeoJSON
python3 {baseDir}/scripts/geojson_tool.py summary --json '{"type":"Point","coordinates":[116.4074,39.9042]}'
Decision Rules
- Assume GeoJSON coordinates are
lon,lat when they represent geographic positions unless the source clearly says otherwise.
- Do not assume every GeoJSON file is WGS84 just because it is GeoJSON; verify source context if precision matters.
- GeoJSON CRS metadata is effectively absent in modern practice; prefer explicit prose in the answer when CRS is uncertain.
- If distance or area analysis is needed, recommend reprojection to a projected CRS before measurement.
- Treat malformed but parseable data as suspect; report the issue instead of silently guessing.
What To Return
- Top-level GeoJSON type.
- Feature count when applicable.
- Geometry type counts.
- Bounding box when coordinates are present.
- A short note about likely CRS/coordinate-order assumptions.
- Specific validation errors or suspicious patterns when found.
When Not To Use
- Reverse geocoding or coordinates-to-address lookup: use
geocode.
- WGS84-specific CRS reasoning: use
wgs84.
- Deterministic GIS processing, conversion, reprojection, or clipping: use
qgis.
- CesiumJS rendering logic: use
cesium.
OpenClaw + ClawHub Notes
- Keep examples generic and portable.
- Do not hardcode private datasets, machine paths, or secrets.
- For clawhub.ai publication, keep examples standards-based and version/changelog updates semver-driven.
Reference Docs In This Skill
- Read
{baseDir}/references/geojson-notes.md for common structures, nesting rules, and failure cases.