[Gvsig_usuarios] Listar capas raster

Óscar Martínez masquesig en gmail.com
Mie Sep 2 13:07:23 CEST 2015


Buenas,

Yo he utilizado en algún momento algo similar a lo siguiente cuando 
desarrollé la librería de gvpy. He creado una función listLayers que te 
permitirá trabajar con todas las capas. La diferencia de lo que te 
comenta Joaquín es que esta función devuelve las capas vectoriales 
directamente de la forma con que se trabaja en ellas en Jython, como si 
usaras el getLayers normal.

Si es para incluirlo en algún trozo de código a lo mejor te es más 
cómoda esta función. Un pequeño script para que compruebes su 
funcionamiento:

from gvsig import *

def listLayers():
     from org.gvsig.fmap.mapcontext.layers.vectorial import FLyrVect
     l = currentView().getLayers()
     listLayers = [Layer(l[i]) if isinstance(l[i], FLyrVect) else (l[i]) 
for i in range(0,l.__len__())]
     return listLayers

def main(*args):
     print "Check all layers"
     for layer in listLayers():
             print "Name: ", layer.name
             print "Type: ", type(layer)
             print "Dir: ", dir(layer)
             print "\n"

     print "Only Vectorial Layers"
     for layer in listLayers():
         if isinstance(layer, Layer):
             print "Vectorial name: ", layer.name, "Count features: ", 
layer.features().getCount()
     print "\n"

| Si usas import gvsig, deberás cambiar: if isinstance(layer, gvsig.Layer)

De todas formas como recomendación, es mejor que sigas los pasos que te 
recomiende Joaquin siempre que se pueda.

Un saludo,
Óscar

On 01/09/2015 23:54, Joaquin Jose del Cerro Murciano wrote:
>
>
> El 30 de agosto de 2015, 11:50, Ovidio Ribeira <alboredos en hotmail.es 
> <mailto:alboredos en hotmail.es>> escribió:
>
>     Hola, estoy trabajando con un script para listar las capas de la
>     vista activa, pero al tener capas ráster en la vista me da el
>     siguiente error:
>     AttributeError: 'org.gvsig.raster.fmap.layers.DefaultFLyrRaster'
>     object has no attribute 'getFeatureStore' in <script> at line
>     number 15
>     El codigo del script es el siguiente:
>
>     from gvsig import *
>
>     def main(*args):
>         print "hola mundo"
>         # lista en pantalla las capas de la vista
>         view = currentView()
>         if not view:
>             msg = ("No hay una vista cargada","Error", 1)
>             print "Error. No hay una vista cargada"
>             return
>         if not len(view.getLayers() )>0:
>             print "Error. No hay capas cargadas"
>             return
>         for layer in view.getLayers():
>             print layer.getName()
>
>
> Hola Ovidio,
> hay un error en la parte de jython que da acceso a las capas de la 
> vista cuando hay capas raster; pero podemos rodearlo accediendo a las 
> capas tal como se hace desde la parte java.
> Seria algo como:
>
>
> from gvsig import *
>
> def main(*args):
>
>   layers = currentView().getMapContext().getLayers()
>   for n in range(0,layers.getLayersCount()):
>     layer = layers.getLayer(n)
>     print layer.getName()
>
>     Las capas ráster no me interesa que aparezcan en la lista, pero
>     como puedo hacer para que si me liste las capas vectoriales.
>
>
> Si quieres saltar las caoas raster podrias probar con algo como:
>
> from gvsig import *
>
>
> def main(*args):
>
>   layers = currentView().getMapContext().getLayers()
>   for n in range(0,layers.getLayersCount()):
>     layer = layers.getLayer(n)
>     if not "Raster" in layer.__class__.__name__ :
>       print n, layer.getName(), layer.__class__.__name__
>
>
>
>
> Un saludo
> Joaquin
>
>     Gracias.
>     Ovidio
>
>     _______________________________________________
>     gvSIG_usuarios mailing list
>     gvSIG_usuarios en listserv.gva.es <mailto:gvSIG_usuarios en listserv.gva.es>
>
>     Para ver histórico de mensajes, editar sus preferencias de usuario
>     o darse de baja en esta lista, acuda a la siguiente dirección:
>
>     http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>
>
>
>
> -- 
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com <mailto:jjdelcerro en gvsig.com>
> jjdelcerro en gvsig.org <mailto:jjdelcerro en gvsig.org>
> gvSIG Association
> www.gvsig.com <http://www.gvsig.com>
> www.gvsig.org <http://www.gvsig.org>
>
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20150902/808a5511/attachment.htm 


Más información sobre la lista de distribución gvSIG_usuarios