Suite

Problèmes avec le polygone python postgis

Problèmes avec le polygone python postgis


J'ai un problème avec les exemples du livre "Développement géospatial Python". Je ne peux pas écrire dans les polygones de la base de données PostgreSQL à partir de TM_WORLD_BORDERS (Chapitre 7, page 202 du livre). Code :

src_file = os.path.join('TM_WORLD_BORDERS-0.3.shp') shapefile = osgeo.ogr.Open(src_file) layer = shapefile.GetLayer(0) pour i in range(layer.GetFeatureCount()): feature = layer. GetFeature(i) name = feature.GetField('NAME').decode('Latin-1') geometry = feature.GetGeometryRef() wkt = geometry.ExportToWkt() cursor.execute('INSERT INTO country (nom, contour) '+ 'VALEURS (%s, ST_PolygonFromText(%s, 4326))' +", (name.encode('utf8'), wkt)) connection.commit()

Seuls 30 des 246 polygones sont écrits. Mais la fonction geometry.IsValid() montre que 242 polygones de pays sont valides.


Je pense qu'il explose sur le premier non valide, vous devez utiliser le contrôle isvalid au fur et à mesure