altezza o coordinata z nella programmazione qgis

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

altezza o coordinata z nella programmazione qgis

Ely Parker
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/gfoss
Questa 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