示例#1
0
 def processPolygon(self):
     if self.skipPoly:
         return
     interior_ring = []
     poly = QgsPolygon()
     outerLineStr = coord2ptsZ(self.outerPoly)
     poly.setExteriorRing(outerLineStr)
     if len(self.innerPoly) > 0:
         for p in self.innerPoly:
             innerLineStr = coord2ptsZ(p)
             interior_ring.append(innerLineStr)
         poly.setInteriorRings(interior_ring)
     self.polygons.append(poly)
示例#2
0
def tzf_to_qgis_polygon(tzdata):
    if not tzdata or len(tzdata) < 1:
        return None
    multi_poly = QgsMultiPolygon()
    for tzpoly in tzdata:
        holes = []
        poly = QgsPolygon()
        for x, part in enumerate(tzpoly):
            if x == 0:
                outer_ls = QgsLineString(part[0], part[1])
                poly.setExteriorRing(outer_ls)
            else:
                hole_ls = QgsLineString(part[0], part[1])
                holes.append(hole_ls)
        poly.setInteriorRings(holes)
        multi_poly.addGeometry(poly)
    return (QgsGeometry(multi_poly))