[Gvsig_italian] Individuazione layer da un oggetto

Antonio Falciano antonio.falciano a gmail.com
Ven 19 Apr 2013 11:06:19 PDT


Il 19/04/2013 17.55, David Benato ha scritto:
> Buongiorno
> Qualcuno sa dirmi se è possibile e come individuare il layer di
> appartenenza di un determinato oggetto?

Salve,
certo che e' possibile... in una miriade di modi! Caso estremo:
supponiamo, ad esempio, di avere una vista contenente 100 layer di punti
con la stessa legenda (...mai provata questa ebbrezza!) e di voler
individuare il layer di appartenenza di un solo punto, delle serie
...come cercare un ago in un pagliaio! :)
Come ne veniamo a capo? Attiviamo tutti i layer dal menu' Vista -->
Imposta layer come... --> Attivi, clicchiamo sul pulsante Deseleziona e
poi assicuriamoci di selezionare solo il punto che ci interessa.
Infine, apriamo la console di Jython (File --> Scripting --> Console di
Jython) e vi scriviamo:

from gvsiglib import *
view = gvSIG.getActiveDocument()
mapCtrl = view.getMapControl()
mapCtxt = mapCtrl.getMapContext()
layers = mapCtxt.getLayers()
activeLayers = layers.getActives()
for lyr in activeLayers:
...	rs=lyr.getRecordset()
...	sel=rs.getSelection()
...	if not sel.isEmpty():
...		lyr.getName()

Comparira' il nome del layer di appartenenza della selezione (cosi' come
compare nella ToC), praticamente quello che stavamo cercando!

NB: nelle ultime quattro righe di codice, al fine di rispettare
l'indentazione, dopo i tre puntini (da non digitare) occorre una
tabulazione, tranne nell'ultima riga in cui ne occorrono due.

Grazie anche all'autocompletamento del codice nella console, e'
possibile anche rendere attivo (o visibile) solo il layer contenente la
selezione. Lo lascio come esercizio agli interessati.

buona serata
Antonio

-- 
Antonio Falciano
http://www.linkedin.com/in/antoniofalciano



More information about the Gvsig_italian mailing list