From a0bd34de451826ba0648a35eeb505fa55bf9c50c Mon Sep 17 00:00:00 2001 From: Juan Pablo Caram Date: Sun, 10 Apr 2016 15:44:17 -0400 Subject: [PATCH] Fixes #198 --- descartes/patch.py | 66 ---------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 descartes/patch.py diff --git a/descartes/patch.py b/descartes/patch.py deleted file mode 100644 index 34686f78..00000000 --- a/descartes/patch.py +++ /dev/null @@ -1,66 +0,0 @@ -"""Paths and patches""" - -from matplotlib.patches import PathPatch -from matplotlib.path import Path -from numpy import asarray, concatenate, ones - - -class Polygon(object): - # Adapt Shapely or GeoJSON/geo_interface polygons to a common interface - def __init__(self, context): - if hasattr(context, 'interiors'): - self.context = context - else: - self.context = getattr(context, '__geo_interface__', context) - @property - def geom_type(self): - return (getattr(self.context, 'geom_type', None) - or self.context['type']) - @property - def exterior(self): - return (getattr(self.context, 'exterior', None) - or self.context['coordinates'][0]) - @property - def interiors(self): - value = getattr(self.context, 'interiors', None) - if value is None: - value = self.context['coordinates'][1:] - return value - - -def PolygonPath(polygon): - """Constructs a compound matplotlib path from a Shapely or GeoJSON-like - geometric object""" - this = Polygon(polygon) - assert this.geom_type == 'Polygon' - def coding(ob): - # The codes will be all "LINETO" commands, except for "MOVETO"s at the - # beginning of each subpath - n = len(getattr(ob, 'coords', None) or ob) - vals = ones(n, dtype=Path.code_type) * Path.LINETO - vals[0] = Path.MOVETO - return vals - vertices = concatenate( - [asarray(this.exterior)] - + [asarray(r) for r in this.interiors]) - codes = concatenate( - [coding(this.exterior)] - + [coding(r) for r in this.interiors]) - return Path(vertices, codes) - - -def PolygonPatch(polygon, **kwargs): - """Constructs a matplotlib patch from a geometric object - - The `polygon` may be a Shapely or GeoJSON-like object with or without holes. - The `kwargs` are those supported by the matplotlib.patches.Polygon class - constructor. Returns an instance of matplotlib.patches.PathPatch. - - Example (using Shapely Point and a matplotlib axes): - - >>> b = Point(0, 0).buffer(1.0) - >>> patch = PolygonPatch(b, fc='blue', ec='blue', alpha=0.5) - >>> axis.add_patch(patch) - - """ - return PathPatch(PolygonPath(polygon), **kwargs)