BYTETOOLS

Point in Polygon Checker

Test one or many coordinates against a GeoJSON, KML or WKT polygon with the ray-casting rule, reporting inside, outside or on the boundary.

Paste a polygon on the left and the points you want to test on the right, then the verdicts appear here.

What is the Point in Polygon Checker?

Paste a polygon and a list of coordinates and this tool tells you, point by point, which ones fall inside it.

  • Accepts GeoJSON, KML, WKT and plain coordinate lists for the polygon
  • Even-odd ray casting with interior-ring (hole) subtraction
  • Configurable on-boundary tolerance from 0.1 m to 100 m
  • Batch tests hundreds of points at once and counts inside, outside and boundary
  • Canvas sketch of the polygon and the tested points, drawn from your own data
  • CSV export, and nothing ever leaves your browser

How to use the Point in Polygon Checker

  1. 1

    Paste your polygon on the left as GeoJSON, KML, WKT or a coordinate list.

  2. 2

    Paste the points you want to test on the right, one "latitude, longitude, label" per line.

  3. 3

    Choose an on-boundary tolerance, or set it to exact if you never want a boundary verdict.

  4. 4

    Read the verdicts in the table and check the sketch, where green is inside and red is outside.

  5. 5

    Copy or download the results as CSV to take them into a spreadsheet.

About the Point in Polygon Checker

Paste a polygon and a list of coordinates and this tool tells you, point by point, which ones fall inside it. It uses the even-odd ray-casting rule that GIS packages use: draw a ray from the point and count crossings of the boundary. Interior rings are subtracted, so a point sitting in a hole is correctly reported as outside.

The polygon can be GeoJSON (Polygon, MultiPolygon or a whole FeatureCollection), KML, WKT, or simply one "latitude, longitude" per line with a blank line starting a hole. Points can be a plain list with labels or GeoJSON Point features. A configurable tolerance decides how close to an edge counts as on the boundary, which matters because a point exactly on a line is ambiguous in every ray-casting implementation.

All of it happens in your browser. Your polygon and your coordinates are never uploaded to a server, which makes this safe for property boundaries, delivery zones and site data you cannot paste into an online GIS.

Frequently asked questions

How does a point-in-polygon test work?

You cast an imaginary ray from the point out to infinity and count how many times it crosses the polygon's edges. An odd number of crossings means the point is inside, an even number means it is outside. It is fast, works on any shape including concave ones, and needs no preprocessing.

What happens if my point sits exactly on the boundary?

Ray casting gives an arbitrary answer for a point exactly on an edge, which is why this tool checks the distance to every edge first. Anything within your chosen tolerance is reported as on the boundary instead of being silently pushed inside or outside.

Does it handle polygons with holes?

Yes. In GeoJSON, KML and WKT the second and later rings are treated as holes, and a point inside a hole is reported as outside the polygon. In a plain coordinate list, leave a blank line and start a new ring to create a hole.

Why is my point reported as outside when it looks inside?

The most common cause is swapped coordinates. GeoJSON positions are written as longitude first, then latitude, while plain text lists here are latitude first — the human order. If your longitudes are in the latitude column the shape will land somewhere else entirely.

Is this accurate for very large polygons?

The test is planar: it treats longitude and latitude as flat x and y. That is exact for practical zones, parcels and city boundaries, but for a polygon spanning thousands of kilometres, or one crossing the antimeridian, the straight edges here do not follow great circles and results near the edges can differ from a geodesic test.

Related tools