Neatbo.

Assign CSV points to GeoJSON regions

Assign local CSV coordinates to Polygon or MultiPolygon regions with explicit hole, boundary and multiple-match policies.

Browser-local processingInputCSV points + GeoJSON regionsOutputMembership CSV / complete match reportUp to 5 MiB per file · File limit: 2
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop them here

Files stay on this device. Your originals stay unchanged.

.csv · .json · .geojson

Up to 5 MiB per file · File limit: 2

    Options

    Complete the required options first. You can keep the defaults for the rest.

    Preparing the tool…

    Before you start

    Add spatial region membership to every input row. Choose coordinate columns and a region-name property, then select boundary and overlap policies. A full JSON report preserves raw values and all matches; spreadsheet-safe CSV appends uniquely named status, region-list and feature-index columns.

    How to use this tool

    1. Select one CSV and one GeoJSON file.
    2. Set longitude/latitude columns, region-name property and boundary/multiple-match policies.
    3. Review matched, unmatched and multiple statuses; download full CSV/JSON reports.

    Supported inputs and limits

    Exactly one .csv and one .json/.geojson, 5 MiB each/10 MiB total; 10,000 point rows, 100 region features, 10,000 edges, 2 million topology-validation operations, 10 million candidate point-edge tests, 100,000 matches and 8 MiB match text. Complexity is checked before joining; no partial-success output.

    Finite planar longitude/latitude WGS84/CRS84 with latitude within±85°; no antimeridian crossing. Rings must be closed and nonselfintersecting, holes strictly inside and disjoint; MultiPolygon interiors cannot overlap. Boundary tolerance is1e−10°; near-touching invalid geometry rejects. Region-name value must be string/number. This reads GeoJSON, not SHP, and never calls geocoding or map services.

    Worked example

    Example input

    8 CSV points with exterior/hole/edge/overlap/vertex/island locations and 3 Polygon/MultiPolygon features.
    Example options
    {"longitude":"lon","latitude":"lat","regionProperty":"name","boundary":"include","multiple":"all"}

    Example output

    Boundary include:6 matched,2 unmatched,1 multiple; boundary exclude:3 matched,5 unmatched,1 multiple.

    When something does not work

    Export SHP as GeoJSON if needed. Correct topology/coordinates and selected field names; simplify overly complex regions or split the point batch within the declared work budgets.

    Frequently asked questions

    Are holes and disconnected regions supported?

    Polygon holes and MultiPolygon members are evaluated. Points inside holes are outside; hole-edge points follow the chosen boundary policy.

    What does first-match change?

    CSV uses the first matching feature in input order; the JSON report still retains every actual match and marks ambiguity. Error policy fails on any multiple match.

    Documentation & further reading

    Related tools