UNPKG

geoenclave

Version:

Validate if a point is inside a given polygon using GeoEnclave.

167 lines (159 loc) 3.53 kB
import { isPointInsidePolygon, countPointsInsidePolygon, ALGORITHMS, Point } from '../src'; const kathmanduRingRoadPolygon: Point[] = [ [ 27.72766858385793, 85.30444243773503 ], [ 27.73517829739761, 85.30549163862372 ], [ 27.735093921220887, 85.31560211372258 ], [ 27.73568455134787, 85.32027582534324 ], [ 27.739481382740536, 85.32695255398438 ], [ 27.742417571012687, 85.33200779415357 ], [ 27.740055177866815, 85.33706302908323 ], [ 27.736342740875475, 85.34145060215174 ], [ 27.729761292929318, 85.34536125667536 ], [ 27.724023297456096, 85.34478895861308 ], [ 27.718622554009244, 85.34688736039044 ], [ 27.707567070095383, 85.34354899345013 ], [ 27.705879116033017, 85.34621969328974 ], [ 27.706554299864546, 85.35032110684816 ], [ 27.704613128712317, 85.35251488814289 ], [ 27.701068288851545, 85.35222874959072 ], [ 27.698873810000922, 85.3550901979862 ], [ 27.69507556479407, 85.35518558798255 ], [ 27.684777431536556, 85.34927191119894 ], [ 27.677601930027333, 85.34936729071633 ], [ 27.669919398598278, 85.33801684521507 ], [ 27.664600408339666, 85.32981400761929 ], [ 27.659112289409926, 85.32599873261309 ], [ 27.658099065096362, 85.3225649861554 ], [ 27.666035718989683, 85.31121454589359 ], [ 27.66730215363662, 85.30787617895328 ], [ 27.6746471731087, 85.30215327168344 ], [ 27.68393327690198, 85.30196250740914 ], [ 27.685199504088306, 85.2948088654626 ], [ 27.688407210514445, 85.2871783180699 ], [ 27.689926617266245, 85.2832676635463 ], [ 27.693809447504254, 85.28155079031747 ], [ 27.705457118800823, 85.28202769838335 ], [ 27.717694270341777, 85.28364918947506 ], [ 27.718875715959076, 85.28507991891227 ], [ 27.72385452544807, 85.29557192255967 ]]; const coordThamel: Point = [27.717028, 85.311256]; const coordCharikot: Point = [27.666664, 86.0333332]; // Bounding coordinates of kathmandu ringroad /* polygon coordinates(clipping boundry geojson) can be easily exported from https://export.hotosm.org/ in Geopackage .gpkg format or ypu case use any polygon drawing tool on top of any map */ console.log(isPointInsidePolygon(coordThamel, kathmanduRingRoadPolygon, ALGORITHMS.RAYCASTING)); // returns true as thamel is inside the kathmandu ring road console.log(isPointInsidePolygon(coordCharikot, kathmanduRingRoadPolygon, ALGORITHMS.RAYCASTING)); // returns false as charikot is outside the kathmandu ring road console.log(countPointsInsidePolygon([coordThamel], kathmanduRingRoadPolygon, ALGORITHMS.RAYCASTING)); // returns 1 as thamel is inside the kathmandu ring road console.log(countPointsInsidePolygon([coordCharikot], kathmanduRingRoadPolygon, ALGORITHMS.RAYCASTING)); // returns 0 as charikot is outside the kathmandu ring road