J'ai un petit problème avec l'API Python OGR. Ce que j'essaie de faire, c'est d'obtenir toutes les coordonnées de chaque sommet de l'anneau extérieur d'un polygone.
Voici ce que j'ai jusqu'à présent:
import osgeo.ogr
import glob
path = "/home/woo/maps/"
out = path + 'output.txt'
file = open(out,'w')
for filename in glob.glob(path + "*.shp"):
ds = osgeo.ogr.Open(filename)
layer1 = ds.GetLayer(0)
print layer1.GetExtent()
for feat in layer1:
geom = feat.GetGeometryRef()
ring = geom.GetGeometryRef(0)
points = ring.GetPointCount()
#Not sure what to do here
file.close()
J'ai entendu dire que vous pouvez juste for
survoler la région, mais cela ne renvoie que les anneaux du polygone, pas les nœuds.
Toute personne en mesure d'aider.
python
open-source-gis
ogr
Nathan W
la source
la source
ogrinfo -al
dit-on?lon, lat, z = ring.GetPoint(p)
ce qui fonctionne pour moi.Pour info - pour un exemple de code complet basé sur la question d'origine, et un script que vous pouvez utiliser tout de suite .. voir https://github.com/spatialguru/NME/blob/master/ogr_explode.py
la source
Je viens de rencontrer le même problème. J'ai fini d'utiliser la fonction ExportToJson dans ogr, puis de lire la chaîne Json dans un dictionnaire. En utilisant mes données et la notation de la question d'origine, cela ressemble à ceci:
la source
Si vous regardez uniquement les fichiers de formes, vous pouvez également utiliser pyshp .
la source