def linemerge(shape): """ Returns a geometry with lines merged using GEOSLineMerge. """ if shape.type != 'MultiLineString': return shape # copied from shapely.ops.linemerge at http://github.com/sgillies/shapely result = lgeos.GEOSLineMerge(shape._geom) return geom_factory(result)
def linemerge(self, lines): """Merges all connected lines from a source The source may be a MultiLineString, a sequence of LineString objects, or a sequence of objects than can be adapted to LineStrings. Returns a LineString or MultiLineString when lines are not contiguous. """ source = None if hasattr(lines, 'type') and lines.type == 'MultiLineString': source = lines elif hasattr(lines, '__iter__'): try: source = asMultiLineString([ls.coords for ls in lines]) except AttributeError: source = asMultiLineString(lines) if source is None: raise ValueError("Cannot linemerge %s" % lines) result = lgeos.GEOSLineMerge(source._geom) return geom_factory(result)