We need to figure out a quick and fairly accurate method for point-in-polygon for lat/long values and polygons over google maps. After some research - came across some posts about mysql geometric extensions, and did implement that too -
SELECT id, Contains( PolyFromText( 'POLYGON(".$polygonpath.")' ) , PointFromText( concat( \"POINT(\", latitude, \" \", longitude, \")\" ) ) ) AS
CONTAINS
FROM tbl_points
That did not however work with polygons made up of a large number of points :(
After some more research - came across a standard algorithm called the Ray-casting algorithm but before trying developing a query for that in MySQL, wanted to take my chances if someone had already been through that or came across a useful link which shows how to implement the algorithm in MySQL / SQL-server.
So, cutting it short - question is:
Can anyone please provide the MySQL/SQL-server implementation of Ray casting algorithm?
Additional detail:
- Polygons are either of concave, convex or complex.
- Targeting quick execution over 100% accuracy.