Skip to main content

Check if Point in Polygon with javascript

function inPoly(poly,px,py)
{
var npoints = poly.length; // number of points in polygon
var xnew,ynew,xold,yold,x1,y1,x2,y2,i;
var inside=false;
if (npoints/2 < 3) { // points don't describe a polygon
return false;
}
xold=poly[npoints-2];
yold=poly[npoints-1];

for (i=0 ; i < npoints ; i=i+2) {
xnew=poly[i];
ynew=poly[i+1];
if (xnew > xold) {
x1=xold;
x2=xnew;
y1=yold;
y2=ynew;
}
else {
x1=xnew;
x2=xold;
y1=ynew;
y2=yold;
}
if ((xnew < px) == (px <= xold) && ((py-y1)*(x2-x1) < (y2-y1)*(px-x1))) {
inside=!inside;
}
xold=xnew;
yold=ynew;
}
return inside;
}

Comments

Popular posts from this blog

Web synchronization option for merge replication

http://msdn2.microsoft.com/en-us/library/ms151319.aspx SQL Server 2005 Books Online Implementing Replication over the Internet Replicating data over the Internet allows remote, disconnected users to access data when they need it using a connection to the Internet. Replicate data over the Internet using: A Virtual Private Network (VPN). For more information, see Publishing Data over the Internet Using VPN . The Web synchronization option for merge replication. For more information, see Web Synchronization for Merge Replication . All types of Microsoft SQL Server replication can replicate data over a VPN, but you should consider Web synchronization if you are using merge replication.

Request Signatures in Blackberry

Request Signatures in Blackberry need copy sigtool.db, sigtool.csk to SDK/component/Bin folder for example V 4.2.1 ../eclipse\plugins\net.rim.eide.componentpack4.2.1_4.2.1.17\components\bin