Controlla se Point Inside A Polygon

Voglio verificare se un punto si trova all’interno di un poligono specifico. Il poligono è:

polygon= [ [-73.89632720118, 40.8515320489962], [-73.8964878416508, 40.8512476593594], [-73.8968799791431, 40.851375925454], [-73.8967188588015, 40.851660158514], [-73.89632720118, 40.8515320489962] ] 

I punti che voglio controllare sono:

 1 = [40.8515320489962,-73.89632720118] 2 = [40.8512476593594,-73.8964878416508] 3 = [40.851375925454,-73.8968799791431] 4 = [40.851660158514,-73.8967188588015] 5 = [40.8515320489962,-73.89632720118] 

Come posso sapere se ognuno di questi punti si trova all’interno di questo poligono?

Questo algoritmo non funziona. Non so perché.

 pt[lat,long] function isPointInPoly(poly, pt){ for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1] < poly[i].y)) && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) && (c = !c); return c; } 

Non voglio utilizzare una soluzione di terze parti come l’API di google maps o questa https://github.com/mattwilliamson/Google-Maps-Point-in-Polygon .

Il mio tentativo è qui: http://jsfiddle.net/nvNNF/2/