Hi Daniel, Thanks - this should do the trick! And it explains why I did not find "Union".
Will try on Monday when I am back in the office. Andreas Am 05.10.2013 11:55, schrieb Daniel: > Try the QgsGeometry::combine() method. > > http://www.qgis.org/api/classQgsGeometry.html#a63244d3435cc99794b82a6cbd0af0eb5 > > Quoting class doc > > *Note:*this operation is not called union since its a reserved word in C++. > > > On Sat, Oct 5, 2013 at 8:07 AM, gene <martin.lal...@gmail.com> wrote: > >> I also do not see union in Geometry Handling >> <http://www.qgis.org/en/docs/pyqgis_developer_cookbook/geometry.html> : >> >> the layer: >> >> for elem in layer.getFeatures(): >> geom= elem.geometry() >> print geom.exportToGeoJSON() >> { "type": "LineString", "coordinates": [ [203271.93800293002277613, >> 89444.43836556003952865], [204056.96179387057782151, >> 89149.26942016639804933], [204590.77797171016572975, >> 89111.58827820124861319], [204823.14501382855814882, >> 89456.99874621508934069] ] } >> { "type": "LineString", "coordinates": [ [204541.79248715547146276, >> 89757.64295613372814842], [204474.17871974196168594, >> 90086.05268357080058195] ] } >> >> >> Using the see <https://github.com/inky/see> module (alternative to >> Python's dir()): >> >> from see import see >> see(geom) >> hash() help() repr() >> str() >> .Error() .addPart() .addRing() >> .adjacentVertices() .area() .asGeometryCollection() >> .asMultiPoint() .asMultiPolygon() .asMultiPolyline() >> .asPoint() .asPolygon() .asPolyline() >> .asWkb() .avoidIntersections() .boundingBox() >> .buffer() .centroid() >> .closestSegmentWithContext() >> .closestVertex() .closestVertexWithContext() >> .combine() .contains() .convertToMultiType() >> .convexHull() .crosses() .deletePart() >> .deleteRing() .deleteVertex() .difference() >> .disjoint() .distance() .equals() >> .exportToGeoJSON() .exportToWkt() .fromMultiPoint() >> .fromMultiPolygon() .fromMultiPolyline() .fromPoint() >> .fromPolygon() .fromPolyline() .fromRect() >> .fromWkb() .fromWkt() .insertVertex() >> .interpolate() .intersection() .intersects() >> .isGeosEmpty() .isGeosEqual() .isGeosValid() >> .isMultipart() .length() .makeDifference() >> .moveVertex() .overlaps() .reshapeGeometry() >> .simplify() .splitGeometry() .sqrDistToVertexAt() >> .symDifference() .touches() .transform() >> .translate() .type() .validateGeometry() >> .vertexAt() .within() .wkbSize() >> .wkbType() >> >> I see .intersection(), .touches() but no .union() >> >> Whereas with Shapely: >> -------------------------- >> >> from shapely.geometry import LineString, shape >> from json import loads >> # empty shapely geometry >> myunion = LineString() >> for elem in layer.getFeatures(): >> geom = elem.geometry() >> # transformation of the QGIS geometry to shapely geometry with >> the geo_interface >> geoms = shape(jloads(elem.geometry().exportToGeoJSON())) >> myunion = myunion.union(geoms) >> print myunion >> MULTILINESTRING ((203271.9380029300227761 89444.4383655600395286, >> 204056.9617938705778215 89149.2694201663980493, 204590.7779717101657297 >> 89111.5882782012486132, 204823.1450138285581488 89456.9987462150893407), >> (204541.7924871554714628 89757.6429561337281484, 204474.1787197419616859 >> 90086.0526835708005819)) >> >> and >> gem = QgsGeometry.fromWkt(myunion.wkt) >> gem >> <qgis.core.QgsGeometry object at 0x12986fef0> >> print gem.exportToGeoJSON() >> { "type": "MultiLineString", "coordinates": [ [ >> [203271.93800293002277613, 89444.43836556003952865], >> [204056.96179387057782151, 89149.26942016639804933], >> [204590.77797171016572975, 89111.58827820124861319], >> [204823.14501382855814882, 89456.99874621508934069] ], [ >> [204541.79248715547146276, 89757.64295613372814842], >> [204474.17871974196168594, 90086.05268357080058195] ] ] } >> >> or with ogr (same result): >> ------------- >> from osgeo import ogr >> # empty ogr geometry >> myunion = ogr.Geometry(ogr.wkbLineString) >> for elem in layer.getFeatures(): >> geom = elem.geometry() >> # transformation of the QGIS geometry to ogr geometry >> geoms = ogr.CreateGeometryFromWkb(geom.asWkb()) >> myunion = myunion.Union(geoms) >> >> Is there a comparable solution with PyQGIS ? >> >> >> >> >> -- >> View this message in context: >> http://osgeo-org.1560.x6.nabble.com/Python-Union-selected-polygons-in-a-layer-tp5081862p5081959.html >> Sent from the Quantum GIS - Developer mailing list archive at Nabble.com. >> _______________________________________________ >> Qgis-developer mailing list >> Qgis-developer@lists.osgeo.org >> http://lists.osgeo.org/mailman/listinfo/qgis-developer >> > > > > > > _______________________________________________ > Qgis-developer mailing list > Qgis-developer@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/qgis-developer > _______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer