libpysal.cg.Polygon(vertices, holes=None)[source]¶Geometric representation of polygon objects.
verticeslistReturns the vertices of the polygon in clockwise order.
lenintReturns the number of vertices in the polygon.
perimeterfloatReturns the perimeter of the polygon.
bounding_boxRectangleReturns the bounding box of the polygon.
bboxListReturns the bounding box of the polygon as a list
areafloatReturns the area of the polygon.
centroidtupleReturns the centroid of the polygon
__init__(self, vertices, holes=None)[source]¶Returns a polygon created from the objects specified.
__init__(Point list or list of Point lists, holes list ) -> Polygon
: bool – record if the quad tree structure has been built for this polygon. This quad tree structure could help speed up the contains_point test
Examples
>>> p1 = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
Methods
|
Returns a polygon created from the objects specified. |
Build the quad tree structure for this polygon. |
|
|
Test if polygon contains point |
Attributes
Returns the area of the polygon. |
|
Returns the bounding box of the polygon as a list |
|
Returns the bounding box of the polygon. |
|
Returns the centroid of the polygon |
|
Returns the holes of the polygon in clockwise order. |
|
Returns the number of vertices in the polygon. |
|
Returns the parts of the polygon in clockwise order. |
|
Returns the perimeter of the polygon. |
|
Returns the vertices of the polygon in clockwise order. |
area¶Returns the area of the polygon.
area -> number
Examples
>>> p = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
>>> p.area
1.0
>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))],[Point((2,1)),Point((2,2)),Point((1,2)),Point((1,1))])
>>> p.area
99.0
bbox¶Returns the bounding box of the polygon as a list
See also bounding_box
bounding_box¶Returns the bounding box of the polygon.
bounding_box -> Rectangle
Examples
>>> p = Polygon([Point((0, 0)), Point((2, 0)), Point((2, 1)), Point((0, 1))])
>>> p.bounding_box.left
0.0
>>> p.bounding_box.lower
0.0
>>> p.bounding_box.right
2.0
>>> p.bounding_box.upper
1.0
build_quad_tree_structure(self)[source]¶Build the quad tree structure for this polygon. Once the structure is built, speed for testing if a point is inside the ring will be inscreased significantly. :return:
centroid¶Returns the centroid of the polygon
centroid -> Point
Notes
The centroid returned by this method is the geometric centroid and respects multipart polygons with holes. Also known as the ‘center of gravity’ or ‘center of mass’.
Examples
>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))], [Point((1, 1)), Point((1, 2)), Point((2, 2)), Point((2, 1))])
>>> p.centroid
(5.0353535353535355, 5.0353535353535355)
contains_point(self, point)[source]¶Test if polygon contains point
Notes
Points falling exactly on polygon edges may yield unpredictable results
Examples
>>> p = Polygon([Point((0,0)), Point((4,0)), Point((4,5)), Point((2,3)), Point((0,5))])
>>> p.contains_point((3,3))
1
>>> p.contains_point((0,6))
0
>>> p.contains_point((2,2.9))
1
>>> p.contains_point((4,5))
0
>>> p.contains_point((4,0))
0
>>>
Handles holes
>>> p = Polygon([Point((0, 0)), Point((0, 10)), Point((10, 10)), Point((10, 0))], [Point((2, 2)), Point((4, 2)), Point((4, 4)), Point((2, 4))])
>>> p.contains_point((3.0,3.0))
False
>>> p.contains_point((1.0,1.0))
True
>>>
holes¶Returns the holes of the polygon in clockwise order.
holes -> Point list
Examples
>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))], [Point((1, 2)), Point((2, 2)), Point((2, 1)), Point((1, 1))])
>>> len(p.holes)
1
len¶Returns the number of vertices in the polygon.
len -> int
Examples
>>> p1 = Polygon([Point((0, 0)), Point((0, 1)), Point((1, 1)), Point((1, 0))])
>>> p1.len
4
>>> len(p1)
4
parts¶Returns the parts of the polygon in clockwise order.
parts -> Point list
Examples
>>> p = Polygon([[Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))], [Point((2,1)),Point((2,2)),Point((1,2)),Point((1,1))]])
>>> len(p.parts)
2
perimeter¶Returns the perimeter of the polygon.
perimeter() -> number
Examples
>>> p = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
>>> p.perimeter
4.0
vertices¶Returns the vertices of the polygon in clockwise order.
vertices -> Point list
Examples
>>> p1 = Polygon([Point((0, 0)), Point((0, 1)), Point((1, 1)), Point((1, 0))])
>>> len(p1.vertices)
4