GeoLint Geometry Inspector

How to use GeoLint

Inspect a file

  1. Select a UTF-8 .geojson/.json file, a .shp file, or a .zip containing exactly one .shp layer, up to 10 MiB. ZIP expanded content must also fit within 10 MiB and 1,024 entries.
  2. Click Next after selecting a file. In Choose rules, browse the General, Basic geometry, Extended geometry and Attributes categories, or search by public rule ID, title or description. Select optional duplicate geometry or attribute checks; selecting attribute checks opens the field rule editor. Click Next to confirm the selected file and the This run list, then click Start inspection. Use Back or the step bar to return without losing your selections. General and basic geometry rules are always enabled. Checks execute when applicable and prerequisites are satisfied; selection is not proof that every check ran or passed.
  3. Wait on the confirmation step for reading, parsing, engine loading and geometry checking. Step navigation is locked during the run. Cancel stops the Worker and keeps you on confirmation to retry. Completed runs automatically open the results screen.
  4. On results, review every summary count. Filter records or move between pages of up to 100 records. Modify checks and run again returns to rule selection; Choose another file returns to the upload step.
  5. Download JSON or CSV issues. Downloads include every issue, regardless of filters.

Shapefile input

Geometry is read from .shp in record order. A ZIP can include a matching DBF and CPG for attribute checks. SHX and PRJ are not interpreted. DBF values do not replace source feature indexes or IDs. Indexes start at zero and correspond to SHP record order, including null shapes. Coordinates stay in their original units: PRJ is not interpreted and no reprojection occurs. ZIPs may contain nested folders, but only one layer. Encrypted, split, ZIP64 and unsupported compression archives are rejected.

Supported geometry

GeoJSON supports Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon and GeometryCollection, as bare geometries or inside Features. Shapefiles support 2D points, multipoints, polylines and polygons. Collection members are checked together as one record; a malformed member fails that record. Empty members cause the whole collection to be skipped. Collection nesting is limited to 64 levels. Z/M coordinates and MultiPatch shapes are skipped without conversion.

This is a GEOS validity check. A self-crossing line or repeated point can be valid; simplicity, network connectivity and duplicate detection are separate checks. Enable the optional duplicate geometry rule to compare source records; geometry collections are excluded.

Read each status

Any engine error, Worker failure or cancellation stops the run and produces no complete report. Cancellation uses the TOPOLOGY_CANCELLED reason code in every execution phase. Choose another file to restart.

Trace a report back to your data

Feature indexes start at zero. The internal key is feature:<index>. IDs may repeat; use the index to distinguish records. String and numeric IDs retain their types. Raw geometries and properties are excluded from reports.

Attribute rules

Select Attribute rules in the rule catalog, then add field rules or load the PID / geo_type / geo_area example. Deselecting Attribute rules keeps the editor draft but excludes it from the next run. Clear optional rules turns off both optional checks; Select all optional rules enables both. Export rules as JSON and import them for another run. Start inspection applies current rules to the last selected file; a completed report retains its original configuration.

Required checks distinguish a missing field, null and an empty string. Missing optional fields skip later checks. Allow null bypasses other checks for null values. int requires a safe integer; double accepts finite numbers, including integers. Numeric strings are not converted. date requires a real YYYY-MM-DD date. Bounds, enums, Unicode string lengths and regular expressions apply without changing data.

Attributes have independent valid, invalid, skipped, failed or disabled states. All field problems are returned. Geometry can pass while attributes fail, or geometry can be skipped while attributes pass. A missing DBF or bare geometry is unavailable, not a successful attribute check. AR-006 checks Feature IDs independently of field sources: an invalid ID produces an identity issue and falls back to the source index when the attribute group is enabled. Identity problems can coexist with unavailable or failed fields. With the group disabled, invalid IDs fall back silently.

CSV and JSON

Reports use version 4.0 and reject earlier versions, with an independent topology status and summary. The optional duplicate geometry rule compares valid 2D points, lines and polygons. Other topology rules are not available. Problems reference General (GR), Basic geometry (BR), Extended geometry (SR) or Attributes (AR) rules. Execution failures retain diagnostic reason codes without a data rule. JSON includes the fixed required-rule selection, enabled optional rules, field-rule snapshot and spatial, attribute and topology summaries; CSV has one row per problem. All problems are exported even when only one page or filter is visible.

JSON preserves original text. CSV uses UTF-8, CRLF and quoted cells. Text that could be interpreted as a spreadsheet formula is prefixed with an apostrophe. Numeric coordinates are unchanged. If your spreadsheet misreads Chinese text, import the CSV explicitly as UTF-8.

A zero-issue JSON has an empty issues array; CSV still includes its header.

Return to the inspector

Duplicate geometry rule

The optional duplicate geometry check compares valid planar 2D points, lines and polygons within one file using topological equality. Vertex order, extra collinear vertices, attributes and feature IDs do not determine equality. MultiPoint, MultiLineString and MultiPolygon participate; GeometryCollection is excluded. No tolerance, snapping or repair is applied. Each unordered pair of duplicate source records produces one topology problem. With three equal records there are three pairs. Downloads contain all pairs and the run configuration; the record table shows each record's related pairs. Skipped comparisons and partial coverage are reported explicitly. Overlaps, gaps, line simplicity and network connectivity are not covered by this rule.