Geo-fence. Check if a point is inside a polygon.
- 
We have the polygon = [[2,9],[8,6],[12,10],[15,2],[10,4],[5,1]] 
- 
Let's check if these points are inside or outside that polygon: 
- 
point = [6,5] 
- 
point = [7,8] 
 
- 
We will use the following algorithm in JavaScript, it is called even-odd rule. 
- 
The number of intersections for a ray passing from the exterior of the polygon to any point; if odd, it shows that the point lies inside the polygon. If it is even, the point lies outside the polygon. Point in polygon. Wikipedia. 

- I will adapt this code:
 https://www.algorithms-and-technologies.com/point_in_polygon/javascript
- JavaScript:
// var poligono = [[2,9],[8,6],[12,10],[15,2],[10,4],[5,1]];
// var punto = [6, 5];
 
 
 
function pointInPolygon(polygon, point) {
    let odd = false;
    for (let i = 0, j = polygon.length - 1; i < polygon.length; i++) {
        if (((polygon[i][1] > point[1]) !== (polygon[j][1] > point[1])) 
            && (point[0] < ((polygon[j][0] - polygon[i][0]) * (point[1] - polygon[i][1]) / (polygon[j][1] - polygon[i][1]) + polygon[i][0]))) {
            odd = !odd;
        }
        j = i;
    }
    return odd;
};
result = pointInPolygon(poligono, punto);
AppInventor.setWebViewString(result);
- 
- I have used poligono and punto as variable names.
 
- 
This tutorial in Spanish: 
 App Inventor.Geofence. JavaScript. Extensión. Punto dentro o fuera de un polígono. Mapa. Coordenadas.









