Point in Polygon Checker
Paste a boundary polygon and a list of latitude/longitude points to see which fall inside. GeoJSON or plain lat,lon lines, holes and multipolygons supported, results as text, CSV, or JSON.
About this tool
This point-in-polygon checker tests a batch of latitude/longitude points against one geofence polygon and reports whether each point is inside, outside, or exactly on the boundary. It is built for quick geofencing QA: paste a boundary, paste points from a spreadsheet or a GeoJSON export, choose how boundary points should be classified, and copy the text, CSV, or JSON result.
The polygon input accepts:
- GeoJSON
PolygonorMultiPolygon, including holes andFeaturewrappers. - A simple ring as one coordinate pair per line.
- A JSON array of coordinate pairs for quick scripted input.
Point input accepts CSV-style lat,lon[,label] lines, JSON arrays/objects, and
GeoJSON Point, MultiPoint, Feature, or FeatureCollection values. For
non-GeoJSON formats you can choose lat,lon or lon,lat; GeoJSON always uses
standard [longitude, latitude] ordering.
Worked example
Use this square polygon:
0,0
0,10
10,10
10,0
and these points:
5,5,Center
10,5,Edge
20,20,Far away
With Boundary = Inside and Output = Text, the result is:
3 points: 2 inside, 1 outside
#1 5, 5 (Center) inside
#2 10, 5 (Edge) inside
#3 20, 20 (Far away) outside
Switch to CSV for spreadsheet-friendly point,latitude,longitude,label,status
rows, or JSON for structured test results.
FAQ
Does it support holes and multipolygons?
Yes. GeoJSON polygons can include interior rings; a point inside a hole is
reported outside. MultiPolygon inputs are treated as a union of polygons, so a
point is inside when it falls inside any polygon part and not inside that part's
holes.
Which coordinate order should I pick?
Use Latitude, Longitude for ordinary pasted rows such as 40.0,-105.0.
Choose Longitude, Latitude when your non-GeoJSON source is written in GIS
x,y order. GeoJSON ignores this setting because GeoJSON coordinates are always
[longitude, latitude].
How are points exactly on the polygon edge handled?
The On-boundary points count as control decides that. Pick Inside to match common geofence behavior, Outside for strict containment, or Boundary when you want edge hits reported as their own status in the output.
Can I draw a polygon on a map or import KML/GPX?
No. This is a deterministic text/GeoJSON checker, not an interactive map editor. Convert KML or GPX to GeoJSON first, or paste simple coordinate lines. It also uses decimal degrees only and does not reproject coordinates from other CRSs.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool geofence-check '0,0
0,10
10,10
10,0 (or GeoJSON: {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,10],[0,0]]]})' 'points=40.0,-105.0,Depot
41.25,-106.5,Warehouse'New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/geofence-check/?polygon=0%2C0%0A0%2C10%0A10%2C10%0A10%2C0%20%20%20%28or%20GeoJSON%3A%20%7B%22type%22%3A%22Polygon%22%2C%22coordinates%22%3A%5B%5B%5B0%2C0%5D%2C%5B10%2C0%5D%2C%5B10%2C10%5D%2C%5B0%2C10%5D%2C%5B0%2C0%5D%5D%5D%7D%29&points=40.0%2C-105.0%2CDepot%0A41.25%2C-106.5%2CWarehouse&coord_order=lat_lon&boundary=inside&output=textMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
