geo-utils contains two helpful utility functions:
1. Point-in-polygon test
2. Random point generator. Right now it performs better if the polygon covers a large portion of its bounding box. The test is performed using this algorithm.
1. Generate a bounding box
2. Generate a random point within this bounding box
3. Perform a point-in-polygon test on this point. If the test succeeds, return the point, if not loop to step a and perform again.
** If anyone know of a better way to do above, let me know. I'd love to hear some better ideas especially when dealing with complex concave polygons.
polygon = Polygon((0,0), (0,4), (4,4), (4,0), (0,0))
point = geo.Point(2,2)
Random point within a polygon
polygon = Polygon( geo.LatLon(42.39321,-82.92114),
point = polygon.random_point()
You can install the package either by cloning this repository and running the standard
python setup.py install
or install from pypi
pip install geo-utils