I'm trying to write a SQL query which determine if a given point is into a polygon. (I'm using SQL Server 2008 R2).
I was following this tutorial (just copy / paste it and change some table name) and it approximatively works BUT it is not precise at all. For example, let's considerate a given point which coordinates are :
P = 45.7664, 4.87383
.
If you draw a little polygon (an approximate square) around this point with 4 vertices coordinates :
S = 45.97215 4.693909, 45.687 4.674683, 45.73302 5.460205, 46.05227 5.366821, 45.97215 4.693909
the procedure given in the link below answers the point is NOT in polygon, whereas it is...
This is the output (with my own formatting text) :
(Polygon 20 is the polygon above)
But if you enlarged the square (10 times bigger in my test), the procedure answers my point is in the square.
So, I'm seeking for another algorithm, more precise.
Here is my VERTICE table, containing all vertices coordinates of each polygon of my DB
I need to check, for ALL polygons (there are a few thousands) if a given point passed in parameter is in a polygon (and if yes, which one(s)). I can do the loop by myself, but I miss a correct Point in polygon algorithm.
Could someone help me ? Thank you very much.
SUMMARY
The corresponding SQL fiddle : http://sqlfiddle.com/#!3/0caa4/1