Ejemplo n.º 1
0
def orient(polygon, sign=1.0):
    s = float(sign)
    rings = []
    ring = polygon.exterior
    if signed_area(ring) / s >= 0.0:
        rings.append(ring)
    else:
        rings.append(list(ring.coords)[::-1])
    for ring in polygon.interiors:
        if signed_area(ring) / s <= 0.0:
            rings.append(ring)
        else:
            rings.append(list(ring.coords)[::-1])
    return Polygon(rings[0], rings[1:])
Ejemplo n.º 2
0
def orient(polygon, sign=1.0):
    s = float(sign)
    rings = []
    ring = polygon.exterior
    if signed_area(ring)/s >= 0.0:
        rings.append(ring)
    else:
        rings.append(list(ring.coords)[::-1])
    for ring in polygon.interiors:
        if signed_area(ring)/s <= 0.0:
            rings.append(ring)
        else:
            rings.append(list(ring.coords)[::-1])
    return Polygon(rings[0], rings[1:])
def _get_inside_direction(linearring):
    """Gets the inside direction for parallel offset (left or right)
    from signed area of geometry"""

    if cga.signed_area(linearring) > 0:
        return 'left'
    else:
        return 'right'
Ejemplo n.º 4
0
 def coordsclockwise(linearring):
     if cga.signed_area(linearring) < 0.0:
         return np.array(linearring.coords)
     else:
         return np.array(linearring.coords)[::-1]