salve spero che qualcuno si intenda di programmazione qgis
devo scrivere un plugin che accede alla coordinata z se c'è delle
geometrie o alla banda di un raster tin
questo il mio codice
def getZ(self,livello,point):
z=0
if (livello.type()==QgsMapLayer.VectorLayer ):
pntGeom = QgsGeometry.fromPoint(point)
pntBuff = pntGeom.buffer(
(self.canvas.mapUnitsPerPixel() * 2),0)
rect = pntBuff.boundingBox()
livello.select(rect,True)
if livello.selectedFeatureCount()>0 :
punto=livello.selectedFeatures().pop()
geom=punto.geometry()
wkb=geom.asWkb()
z=loads(wkb).z
return z
elif (livello.type()==QgsMapLayer.RasterLayer):
altezza=livello.dataProvider().identify(point,QgsRaster.IdentifyFormatValue)
z=[float((altezza.results()[1]) or 0)]
return z
return 0
in generale con la situazione che mi serve funziona
uso le librerie shapely per caricare una geometria in wkb per caricare la z
ma mi chiedevo se c'è un modo + standard e/o + elegante che mi eviti di
importare questa libreria
come è combinato il supporto alle geometrie 25D (ossia con la z) in qgis?
si deve usare per forza shapely o altro?
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfossQuesta e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013