Formazione - Appunti di Geomedia Pro
il contenuto di tali appunti non costituisce un manuale completo di Geomedia Pro bensì un riferimento per alcune particolari logiche e "trucchi" che normalmente non sono evidenziate nei manuali di riferimento e si scoprono di volta in volta utilizzando tale prodotto. L'aggiornamento di tali appunti è continuo
Utilizzo delle functional attribute:
Tale funzionalità introdotte dalla versione 5.2 in poi aprono un ventaglio di possibilità che non erano nemmeno pensabili nelle versioni precedenti.
Ad esempio con una functional attribute oltre a poter creare un campo virtuale che riporta dinamicamente un valore calcolato contestualmente al singolo oggetto è possibile anche fare in modo di creare oggetti grafici dinamici in base agli attributi dell'oggetto grafico su cui vengono costruite le functional attribute stesse.
Ma con un esempio si può spiegare molto meglio quello che a parole è difficile.
Creazione di una functional attribute, a partire da una feature puntuale, che crei un segmento "virtuale" di 150 metri dal punto che viene digitalizzato in direzione Nord.
La formula necessaria per creare tale segmento è la seguentepunto :
CREATEPOLYLINE(Input.Geometry; MOVEBYDISTDIR(Input.Geometry; 150; 0; ProjectedMeas)
Dove Input.Geometry è il campo che rappresenta la geometria della feature puntuale da cui si è partiti
e il secondo argomento è la funzione che muove tale posizione di 150 metri in direzione 0° (che è assunto come Nord) assumendo un metodo di misurazione della distanza proiettato.
Una volta creata tale functional attribute appariranno dei segmenti di 150 metri a partire dell'oggetto in direzione nord che avranno come attributi quelli dell'oggetto da cui si è partiti.
Functional attribute: Recupero del primo e dell'ultimo segmento di una spezzata.
Partendo da una feature lineare costituita da polilinee complesse si vuole recuperare tramite diverse functional attribute il primo e l'ultimo segmento.
La formula da utilizzare è: FIRST(SEGMENTS(Input.GDO_GEOMETRY))
Partendo dalla funzione più interna si è utilizzato SEGMENTS che presa la geometria di una polilinea restituisce i singoli segmenti presi come oggetti grafici singoli, quindi con la funzione FIRST si ottiene della collezione di segmenti restituita da SEGMENTS il primo segmento.
Allo stesso modo con la funzione LAST si ottiene l'ultimo segmento.
Functional attribute: Creazione di un areale a partire da una serie di spezzate che costituiscono il limite di un areale.
Partendo da un serie di lineari contenenti un codice di aggancio per ragrupparli e che costituiscono i confini di aree delimitate dagli stessi, è possibile con due seplici query costruire le aree piene, tipo di geometria areale, che possono quindi costituire una sorta di "complexer" dei buondary di partenza.
Le query da effettuare sono 2:
Gestione Contenuto Maschere di interrogazione: Una funzionalità spesso non utilizzata ma a mio avviso di grande utilità è quella delle "picklist".
Partiamo da un dato di fatto: quando interrogo un oggetto con geomedia mi si apre una maschera di interrogazione che spesso mi riporta i valori "grezzi" cioè i valori a volte numerici che sono contenuti nei campi della tabella della feature contenuta nel db.
Spesso tale problema viene risolto facendo delle join che collegano la tabella principale con le tabelle valori-descrizioni dei domini associati a specifici campi.
Esempio: tabella Edifici campo Destinazione uso tale campo nella tabella contiene dei numeri 1,2,3,4... che non rappresentano nulla ma che una volta decodificati con la tabella delle destinazioni d'uso rappresentano il contenuto semantico corretto. Una tabella come quella delle destinazioni d'uso viene spesso chiamata tabella di dominio, in quanto contiene tutti i possibili valori per le destinazioni d'uso. La struttura di tali tabelle spesso è "Valore","Descrizione" dove valore sarà 1,2,3,4 ... e descrizione sarà "Residenza", "Industria", "Luogo di culto",...
In una warehouse Access di Geomedia è possibile facendo le seguenti operazioni:
|
Nome campo |
tipo campo |
| FeatureName | Varchar(255) |
| FieldName | Varchar(255) |
| PickListTableName | Varchar(255) |
| ValueFieldName | Varchar(255) |
| DescriptionFieldName | Varchar(255) |
| FilterClause | Varchar(255) |
FeatureName = Nome dalla Feature Geomedia
FieldName = Nome del campo della Feature Geomedia
PickListTableName= Nome della tabella contenente la lista dei valori da elencare come dominio
ValueFieldName=Nome del campo nella tabella del dominio che contiene i valori da decodificare
DescriptionFieldName=Nome del campo nella tabella del dominio che contiene le descrizioni da apporre al posto dei corrispondenti valori
FilterClause=Clausola di filtro per i valori elencati in comcomitanza di un campo della tabella di dominio che fa da discriminante (opzionale)
Occorrerà quindi costruire le corrispondenti tabelle di dominio che devono entrare in gioco per decodificare i campi delle Feature
04/09/2008