Microsoft PowerPoint - SlidesCorsoBD_2012.ppt

annuncio pubblicitario
Sistemi Informativi Geografici
Anno accademico 2009/2010
Sistemi Informativi Geografici,
Geodatabase e Web GIS
Gianni Campanile
ESRI Italia
[email protected]
Programma del seminario
1.
2.
3.
4.
5.
6.
Cos’è un GIS
Dati Geospaziali
Indici spaziali
Il Geodatabase
La multiutenza nel GIS
WebGIS
Gianni Campanile
In collaborazione con
Pag. 1
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esri
•
•
•
•
Esri Inc. Environmental Systems Research Institute
Società privata
Fondata nel 1969
Leader mondiale nel campo del software GIS
•
•
•
•
Esri Italia
Società privata
Fondata nel 1990
Distributore ufficiale per l’Italia dei prodotti Esri
Gianni Campanile
ArcGIS: un sistema GIS completo
Applications
ArcGIS
Desktop
ArcGIS
Engine
ArcGIS
Explorer
Web
Application
ArcGIS
Mobile
ArcMap
ArcCatalog
+ Extensions
Custom GIS
applications
Lightweight
GIS client
Java
.NET
JavaScript
Lightweight
toolkit
ArcGIS
Server
Services
File
File
Desktop
Workgroup
Enterprise
ArcSDE
Personal
ArcGIS
Online
ArcSDE
technology
Desktop
Data
(Geodatabase)
Integrated
server-based
GIS
Gianni Campanile
In collaborazione con
Pag. 2
Sistemi Informativi Geografici
Anno accademico 2009/2010
1. Cos’è un GIS
Definizioni, Evoluzione, Esempi
Cos’è un GIS
• GIS = Geographic (o Geographical) Information
System
• In Italiano: Sistema Informativo Geografico
– A volte si usa Sistema Informativo Territoriale (SIT) ma
non è corretto.
• Rhind 1989:
– Un insieme di hardware, software e procedure disegnate
per supportare l’acquisizione, la gestione, la modifica,
l’analisi, la modellazione e la visualizzazione di dati
spaziali per risolvere problemi di pianificazione e
gestione
• USGS (United States Geological Survey), 2005:
– Un sistema informatico in grado di assemblare,
memorizzare, modificare e visualizzare informazioni
geografiche, cioè dati identificati in base alla loro
localizzazione geografica
Gianni Campanile
In collaborazione con
Pag. 3
Sistemi Informativi Geografici
Anno accademico 2009/2010
A cosa serve?
• Mappatura di elementi geografici per
una successiva analisi territoriale
• Misure di fattori ambientali
• Modellizzazione di processi alternativi
per la pianificazione territoriale
• Controllo dei cambiamenti nei
processi ambientali
• Ecc.
Con un Sistema di Analisi Geografico, noi
estendiamo le capacità di consultazione di
database tradizionali includendo la possibilità di
analizzare i dati basandosi sulla loro ubicazione.
Gianni Campanile
Perché il GIS è “speciale”
• Si riferisce a dati
“geografici”, sia in
senso matematico
(oggetti definiti
tramite n-ple di
numeri reali) che in
senso geografico (la
Terra)
• I sistemi GIS
trattano dati che si
riferiscono ad oggetti
o fenomeni del
mondo reale
Gianni Campanile
In collaborazione con
Pag. 4
Sistemi Informativi Geografici
Anno accademico 2009/2010
Le tappe importanti del GIS
Il GIS ha più
di 1Mln di
utenti
Inizio del
GIS sul web
Primo sistema
commerciale
basato su DBMS
Applicazione
dei concetti
di topologia
CGIS: Primo
sistema GIS
Prima
mappa
prodotta al
computer
Gianni Campanile
Componenti del GIS
• 1. I geodati
• 2. La geovisualizzazione
• 3. Il geoprocessing
Gianni Campanile
In collaborazione con
Pag. 5
Sistemi Informativi Geografici
Anno accademico 2009/2010
Video Layer
Gianni Campanile
Misure su rilievi
Gianni Campanile
In collaborazione con
Pag. 6
Sistemi Informativi Geografici
Anno accademico 2009/2010
Determinazione Skyline
Gianni Campanile
I non-GIS
Google Earth/Maps, o Bing sono GIS ?
NO
• Le mappe sono solo i dati di base
• Servono livelli informativi specifici, dati,
modelli, processi per fare un GIS
Gianni Campanile
In collaborazione con
Pag. 7
Sistemi Informativi Geografici
Anno accademico 2009/2010
2. Dati Geospaziali
Modelli, Tipi di dati, Strutture dati e
memorizzazione
Modellare la realtà
Realtà
I dati vanno “strutturati” e “modellati”
per essere Informazione
Implementazione
Schema
Analisi
Gianni Campanile
In collaborazione con
Pag. 8
Sistemi Informativi Geografici
Anno accademico 2009/2010
Come modellare ? Dal continuo al discreto
Curve
• Gli strumenti di cui
disponiamo per
visualizzare una mappa
sono discreti:
– Monitor
– Stampanti
• Si devono sfruttare
algoritmi specifici per la
discretizzazione di dati
continui
Algoritmo di Douglas-Peucker
Gianni Campanile
Quali formati ?
Formato Raster
• Formato Vettoriale
– Rappresentazione discreta della
realtà
– Più costoso, tempi di realizzazione
lunghi
– Più dettaglio sul territorio
– Più informazioni associate
all’elemento geografico
– Più adatto alla costruzione del
database geografico
– Usa celle quadrate per rappresentare la
realtà
– Più adatto ad analisi territoriali mirate
– Più adatto per informazioni territoriali
continue
– Richiede molto spazio in memoria
– Una sola informazione per ogni cella
Y
Nodo
Vertici
X,Y
X,Y X,
Y
Arco
Y
Nodo
Righe
X,Y
X
Origine
X
Origine
Colonne
Gianni Campanile
In collaborazione con
Pag. 9
Sistemi Informativi Geografici
Anno accademico 2009/2010
Raster data types
0
• Continuous
– Values indicate
83
quantity of a variable
– Examples: Reflected light,
elevation, water runoff
• Discrete
– Values indicate
quality of a variable
– Examples: Soil type,
colormap value,
‘yes’ or ‘no’ suitability
• User interprets data as
153
continuous or discrete
Gianni Campanile
255
0
VALUE
.
153
.
SOIL_CODE
.
NoA
.
255
Quali formati raster ?
Il raster per il GIS non è una semplice immagine (ad.es. JPG), perché
deve essere ortorettificato e georeferenziato
Il più diffuso formato raster nel GIS è il
GeoTIFF, cioè un TIFF (Tagged Image File
Format) georeferenziato.
Gianni Campanile
In collaborazione con
Pag. 10
Sistemi Informativi Geografici
Anno accademico 2009/2010
Vettoriale
• Un vettoriale è un insieme di coordinate
• E’ il programma di visualizzazione che
interpreta le coordinate
• Tutti gli elementi geografici si possono
rappresentare con tre tipologie
geometriche:
Punti
Linee
Poligoni
Gianni Campanile
Quali formati vettoriali ?
• Vi sono diversi formati vettoriali a seconda del loro utilizzo:
• Gestione
– “file” (ad.es. Shape, DWG)
– Database/Geodatabase (ad.es. Oracle, DB2, SQL Server,
MySQL, ArcSDE, PostGIS) con diversi formati geometrici:
▪ SDO
▪ ST_Geometry
▪ WKB
▪ etc.
• Interscambio
– ad.es. DXF, GML
• Web
– GML, SVG, KML, WFS
Gianni Campanile
In collaborazione con
Pag. 11
Sistemi Informativi Geografici
Anno accademico 2009/2010
Formato Shape
• Formato dati definito da ESRI
• E’ il formato dati più utilizzato nel mondo
• E’ composto da 3 file (in formato 8.3) con lo stesso
basename :
– Un file di “dati” spaziali (con estensione .shp)
– Un file “indice” (con estensione .shx)
– Un file di dati alfanumerici (con estensione .dbf e in
formato dBase III/dBase IV)
• Permette di memorizzare oggetti anche
complessi (multipolygon, donuts, etc.)
• Un file viene utilizzato per definire tutti
gli oggetti di un certo tipo
Gianni Campanile
Struttura del file .shp (1/2)
• E’ composta da un header di file e da molti record ognuno con un
header di record
• I record possono avere anche lunghezze diverse
Gianni Campanile
In collaborazione con
Pag. 12
Sistemi Informativi Geografici
Anno accademico 2009/2010
Struttura del file .shp (2/2)
• Ogni record ha un
header…
• …e una struttura
che dipende dal
tipo di oggetto:
Gianni Campanile
Struttura del file .shx
• E’ composta da un
header di file e da molti
record uguali
• Non indicizza i dati, ma
solo i record. Ogni record
contiene il riferimento ad
un record nel file .shp
• Serve per trovare
rapidamente un record
nel file shp, perché
questi non hanno
lunghezza uguale
Gianni Campanile
In collaborazione con
Pag. 13
Sistemi Informativi Geografici
Anno accademico 2009/2010
Struttura del file .dbf
• E’ un file in formato dBase III/dBase IV
• Deve avere lo stesso numero di record dei files .shp
e .shx
• Contiene tutti i dati alfanumerici
Gianni Campanile
3. Indici Spaziali
Da 1 a 2 dimensioni, indici per dati raster, indici
per dati vettoriali
Gianni Campanile
In collaborazione con
Pag. 14
Sistemi Informativi Geografici
Anno accademico 2009/2010
Gli Indici
Un indice è qualcosa di “utile” per le ricerche che verranno
effettuate
•
•
Interrogazioni alfanumeriche:
– Trova il signor “Rossi Francesco”
– Trova il signor “Francesco Rossi”
– Trova tutti i “Rossi” con età >40
Interrogazioni spaziali:
– Spaziale per oggetto:
▪ Dammi le coordinate dell’obelisco di S. Giovanni
– Spaziale puntuale:
▪ Dammi gli oggetti alle coordinate x,y
– Range Spaziale:
▪ Dammi gli oggetti compresi nel rettangolo di vertici opposti
P(x,y) P’(x’, y’)
▪ Dammi gli oggetti che distano < x da un punto P
Gianni Campanile
Da 1 a 2
dimensioni
• Un indice su dati alfanumerici è un ordinamento
basato su una “vicinanza” alfanumerica che ci fa
comodo
• Un indice su dati spaziali deve essere un
ordinamento basato su una “vicinanza” spaziale.
• Vanno bene gli indici “normali” ?
– Ad.es. indicizzare su x;y (come su
Cognome;Nome) ?
Gianni Campanile
In collaborazione con
Pag. 15
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempi di Ordinamento raster
Row
Spiral
Row-Prime
Morton
Cantor Diagonal
Peano-Hilbert
Gianni Campanile
Indici per dati raster: Quad-tree
• Decomposizione di una regione in un albero in cui ogni nodo (tranne
le foglie) ha esattamente 4 figli e rappresenta un quadrato uguale. Il
processo continua finché ogni quadrato è omogeneo
Gianni Campanile
In collaborazione con
Pag. 16
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempio completo Quad-tree
Gianni Campanile
Operazioni con Quad-tree
Gianni Campanile
In collaborazione con
Pag. 17
Sistemi Informativi Geografici
Anno accademico 2009/2010
Algoritmo intersezione
Input: Binary quadtrees Q, R
q ← root of Q, r ← root of R
queue L ← [(q, r )]
while L is not empty do
remove the first node pair (x, y) from L
if x or y is a white leaf then
add white leaf to output quadtree S
if x is a non-white leaf then
add y and all subnodes to output quadtree S
if y is a non-white leaf then
add x and all subnodes to output quadtree S
if x and y are non-leaf nodes then
add a new non-leaf node to output quadtree S
for pairwise descendants x' of x and y ' of y do
add (x ', y ') to the end of L
Output: A binary quadtree S that represents the intersection Q ∩R
Gianni Campanile
Indici per oggetti puntuali
• Se si devono memorizzare punti, si possono
utilizzare le seguenti strutture:
– Fixed grid
▪ Partizione della regione in una griglia regolare
– Grid File
▪ Come la fixed, ma la griglia è variabile
– Point quad tree
▪ Simile al region quad-tree
– 2D tree
▪ Albero binario
Gianni Campanile
In collaborazione con
Pag. 18
Sistemi Informativi Geografici
Anno accademico 2009/2010
Fixed Grid
• Partizione in una griglia regolare
• Punti che condividono la stessa
cella (bucket) sono memorizzati
insieme
• Buona performance per le
interrogazioni spatial range
• Dimensione della partizione
dipende da:
– Numero di punti
– Ampiezza media del range
• Non performante se i punti non
sono uniformi
Gianni Campanile
Grid File
Estende la Fixed Grid rendendo arbitrarie le suddivisioni della
griglia, dipendenti dalla posizione dei punti
Gianni Campanile
In collaborazione con
Pag. 19
Sistemi Informativi Geografici
Anno accademico 2009/2010
Point Quad-tree
•
•
•
•
•
Unisce l’approccio della griglia con un albero multidimensionale
Ogni nodo intermedio ha 4 discendenti
Ogni quadrante è centrato su un punto
La costruzione ha complessità O( n log r); la ricerca O (log n)
Il numero dei discendenti cresce esponenzialmente al crescere della
dimensione dello spazio
• A seconda della disposizione dei punti molti rami possono essere vuoti
Gianni Campanile
Esempio del Point Quad Tree (1/3)
Dati di input:
Gianni Campanile
In collaborazione con
Pag. 20
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempio del Point Quad Tree (2/3)
Primi 5 passaggi:
Gianni Campanile
Esempio del Point Quad Tree (3/3)
Costruzione completa:
Gianni Campanile
In collaborazione con
Pag. 21
Sistemi Informativi Geografici
Anno accademico 2009/2010
Albero 2D
•
•
•
•
L’albero 2D è un albero binario (ha sempre 2 discendenti)
La profondità è maggiore del Quad-tree
I rami vuoti sono in media di meno
Nel piano, le coordinate vengono confrontate alternativamente a
seconda del livello: x ai livelli pari e y a quelli dispari (root = 0)
Gianni Campanile
Esempio di Albero 2D
Gianni Campanile
In collaborazione con
Pag. 22
Sistemi Informativi Geografici
Anno accademico 2009/2010
2D-tree: algoritmo di range (1/2)
Gianni Campanile
2D-tree: algoritmo di range (2/2)
Livello 0
Right Node
Gianni Campanile
In collaborazione con
Pag. 23
Sistemi Informativi Geografici
Anno accademico 2009/2010
Strutture per oggetti lineari
•
Per le strutture lineari le strutture precedenti non
sono adatte
• Si può usare il PM-quadtree
• Ce ne sono vari tipi: PM1, PM2 e PM3
• PM1: si suddivide una regione nel minimo di
quadranti in modo che siano verificate:
1. Ogni foglia del quadtree rappresenta una
regione che contiene al più un vertice
2. Se una foglia del quadtree rappresenta una
regione che contiene un vertice, può
contenere solo elementi lineari che contengono
il vertice
3. Se una foglia del quadtree rappresenta una
regione che non contiene un vertice, allora può
contenere solo un elemento lineare
Gianni Campanile
Costruzione del PM-quadtree
• Nella figura a., il quadrante evidenziato viola la condizione 1
• Nella figura b., il quadrante evidenziato viola la condizione 2
• Nella figura c., il quadrante evidenziato viola la condizione 3
Gianni Campanile
In collaborazione con
Pag. 24
Sistemi Informativi Geografici
Anno accademico 2009/2010
Strutture per oggetti complessi
•
•
•
Il problema più generale richiede ancora altre soluzioni
Non si può analizzare l’intero insieme dei dati, ma bisogna ridurre
il problema
Si utilizzano il MBB (Minimum Bounding Box: il più piccolo
rettangolo che contiene interamente l’oggetto e che ha i lati
paralleli agli assi cartesiani) e gli indici R-tree, R+-tree e BSP-Tree
• Usando gli MBB, alcune
interrogazioni sono
semplificate
• Ad.es. Trovare tutti gli oggetti
completamente contenuti nel
cerchio
Gianni Campanile
Esempio di uso
Obiettivo: Non esaminare tutte le geometrie
4 step di raffinamento:
Filter
A
In collaborazione con
Feature class
1. Tile
Tile
2. Envelope
Envelope
3. Geometry
Envelope
4. Geometry
Geometry
Gianni Campanile
Pag. 25
Sistemi Informativi Geografici
Anno accademico 2009/2010
4.Geodatabase
Database spaziali, Geodatabase, Struttura di un GeoDB
Gianni Campanile
Database spaziale
Table =
Feature
Class
Column = property
• Un database spaziale è
composto di tabelle
bidimensionali (righe e colonne)
• Ogni tabella rappresenta una
classe di dati geografici (Feature
Class)
Row
= object
• Ogni riga rappresenta un oggetto
geografico (Feature) identificato
da un ID (Feature ID o FID)
• Una o più colonne mantengono le
Geometry column
coordinate
Gianni Campanile
In collaborazione con
Pag. 26
Sistemi Informativi Geografici
Anno accademico 2009/2010
Database spaziale e GIS
• Un sistema GIS ha però bisogno di altre
informazioni per rispondere a domande come:
– Quali sono gli edifici che sono lungo questa
strada ?
– Se si rompe questa tubatura, quali utenti devo
avvertire ?
– Quali sono le farmacie raggiungibili in meno di
5 minuti da questo punto ?
– Voglio un’unica immagine di quest’area
composta da tutte le immagini satellitari prima
del 2008
– ....
Gianni Campanile
Topologia
• Cos’è la topologia ?
– Lo studio delle relazioni spaziali tra gli oggetti
• In un GIS, è importante poter definire delle regole topologiche
sugli oggetti (ad.es. due edifici non possono sovrapporsi etc.)
Gianni Campanile
In collaborazione con
Pag. 27
Sistemi Informativi Geografici
Anno accademico 2009/2010
Geodatabase
• Un Geodatabase è un database spaziale che contiene tutte le
strutture per gestire un sistema GIS
• Possono far parte di un Geodatabase:
– Oggetti vettoriali
– Oggetti Raster
– Proiezioni definite
– Dominio degli attributi
– Topologia
– Connettività
– Network
– Annotazioni
– Misure
– Modelli di Geoprocessing
– …
Un Geodatabase è molto di più di un Database Spaziale!
Gianni Campanile
Estendere un Database Spaziale
• Abbiamo visto come passare da un DBMS ad un
Database Spaziale
• In un Database Spaziale abbiamo le feature tables
contenenti gli oggetti e gli indici spaziali
• In un Geodatabase possiamo memorizzare molte
più informazioni
• Come passiamo da un Database Spaziale ad un
Geodatabase ?
• Proviamo ad implementare le seguenti
caratteristiche
– Definire proiezioni per ogni Feature Class
– Regole topologiche
– Regole di connessione
Gianni Campanile
In collaborazione con
Pag. 28
Sistemi Informativi Geografici
Anno accademico 2009/2010
Proiezioni definite per feature class
•
Relazione tra un tipo di Feature Table e la sua proiezione
Tipo
Oggetto
0,n
1,1
ha
Proiezione
Contiene la lista delle
Feature Tables
Gianni Campanile
Topologia
• Relazione tra due tipi di Oggetti e una regola
topologica
0,n
Tipo
Oggetto
rispetta
0,n
0,n
Regole
Topologiche
Gianni Campanile
In collaborazione con
Pag. 29
Sistemi Informativi Geografici
Anno accademico 2009/2010
Connettività
• Relazione tra due tipi di Oggetti con una quantità minima,
massima e un tipo di connessione (ad.es. ad un estremo, vertice
interno, etc.)
0,n
Tipo
Oggetto
ha
0,n
0,n
min
Tipo di
connessione
max
Gianni Campanile
5. Multiutenza nel GIS
Tipi di lock, Versioning, Replica
In collaborazione con
Pag. 30
Sistemi Informativi Geografici
Anno accademico 2009/2010
Multiutenza
• La natura dei dati geografici crea problemi nella multiutenza in
aggiornamento:
– Le regole topologiche influenzano vicendevolmente gli oggetti
– Un eventuale lock è di natura geografica, quindi coinvolge un
numero variabile di tabelle e di righe
– Alcune modifiche sono lunghe anche mesi (Long Transactions)
• Questi problemi non sempre possono essere risolti dal database spaziale
perché è difficile determinare quali dati “bloccare” durante un
aggiornamento
• Una transazione è un gruppo di istruzioni eseguite in modo atomico,
cioè tutte completate o tutte annullate
• In un normale DBMS ogni singola operazione di modifica (insert, update,
delete) viene eseguita come transazione
• Con la Start Transaction e End Transaction di SQL è possibile definire
l’inizio e la fine di una transazione
• Una transazione standard effettua una serie di lock di sicurezza, è quindi
un pessimistic locking; se la transazione è lunga (long transaction)
serve un approccio diverso: optimistic versioning
Gianni Campanile
Pessimistic vs Optimistic
• Pessimistic (Transaction):
– Si effettua un lock per impedire i
conflitti, anche se non si sa se
avverranno
– Nessun utente può accedere ai
dati (in lettura sì se è attivata la
dirty reading) durante una
transazione
– La storia del DB è una sequenza
lineare di stati atomici
• Optimistic (Versioning)
– Si mantengono in tabelle
apposite le modifiche effettuate
sui dati (journaling)
– Eventuali conflitti vengono risolti
successivamente
– Si crea un albero degli stati
Gianni Campanile
In collaborazione con
Pag. 31
Sistemi Informativi Geografici
Anno accademico 2009/2010
Versioning
• Il versioning è una tecnica per creare più versioni
“in linea” della stessa banca dati
• E’ utile anche per mantenere proposte di varianti in
un progetto
• Viene gestito tramite le Delta tables, cioè tabelle
che mantengono le modifiche per ogni versione
• Questo tipo di versioning è diverso dal versioning
utilizzato per l’ottimizzazione della lettura di un DB
Gianni Campanile
Il Versioning - editing multiutente
Feature class Particelle
Default
Business
Mario
Versione di
Mario
Sara
State 1
(add)
State 2
(delete)
State 3
(merge)
State 4
(add)
Versione di
Sara
Gianni Campanile
In collaborazione con
F S
A
1
3
2
3
4
D
Delta
Tables
A
Pag. 32
Sistemi Informativi Geografici
Anno accademico 2009/2010
Version
Reconciliation
•Quando versioni
diverse devono essere
unite, si possono
generare dei conflitti
•Il processo di
risoluzione dei conflitti
si chiama Posting (dal
figlio al padre) o
Reconciling (dal padre
al figlio)
Gianni Campanile
Repliche tra Geodatabase
• La tecnica del Reconcile&Post permette di gestire le repliche
di database
• La replica permette di distribuire copie di dati tra due o più
geodatabases (“anche di diversa tipologia”)
• Si possono modificare due o più database in modo
indipendente e mantenerli sincronizzati
• Vi sono 3 modalità di replica:
CheckoutCheckin
Parent
Two Way
Parent
One Way
Parent
Child
Una sola volta
Child
Più volte
Più volte
Child
Gianni Campanile
In collaborazione con
Pag. 33
Sistemi Informativi Geografici
Anno accademico 2009/2010
Spatial DBMS < Geodatabase < GIS
• Uno Spatial Database
NON E’ un Geodatabase
• I dati sono solo una
delle componenti del
GIS, quindi un
Geodatabase NON E’ UN
GIS
• Un GIS comprende
anche tool e procedure
per l’analisi dei dati
spaziali (Geoprocessing)
Gianni Campanile
6. WebGis
Ottimizzazione e programmazione
In collaborazione con
Pag. 34
Sistemi Informativi Geografici
Anno accademico 2009/2010
Ottimizzazione
Ottimizzare l’accesso ai dati è è molto
importante nel GIS perché spesso bisogna
trattare…
•
•
•
•
•
Molti tipi di oggetto (feature classes)
Molti oggetti (features)
Oggetti molto grandi (raster)
Oggetti con molti punti
Oggetti con diverse rappresentazione
Gianni Campanile
Possibili soluzioni
• Velocizzare l’accesso ai dati
– Potenziando l’Hardware
– Creando indici opportuni
• Utilizzare filtri “verticali”
– Filtri sui dati (query ad hoc)
– Eliminazione punti coincidenti
• Utilizzare filtri “orizzontali”
– Visibilità per livelli di scala
– Piramidi (raster)
– Cache per le mappe di base
Gianni Campanile
In collaborazione con
Pag. 35
Sistemi Informativi Geografici
Anno accademico 2009/2010
Filtri verticali
• Filtri sui dati
– Attributi: clausole where (Definition query) che
selezionano solo gli oggetti che rispondono ad
un certo criterio
– Area: seleziona solo gli oggetti che ricadono in
un’area (automatico per il map frame)
Spatial filter
• Punti coincidenti
– Algoritmi di retrieve ottimizzati: vengono
recuperati solo i punti distinti. Non modificabile
dall’utente
Gianni Campanile
Filtri orizzontali
• Visibilità
– Accensione/Spegnimento di layer a scale
predefinite
• Piramidi
– Creazione per i raster di livelli di visualizzazione
intermedi
– Le piramidi non riguardano solo il web
• Cache
– Creazione di livelli predefiniti di visualizzazione
– Diverse modalità: completa, parziale, fused, etc.
– Utilizzata per il web
Gianni Campanile
In collaborazione con
Pag. 36
Sistemi Informativi Geografici
Anno accademico 2009/2010
Dettaglio: Pyramids
• Reduced resolution copies of
original raster
– Pixel size doubles at each
level
• Improves query performance
– ArcGIS requests data
resolution
to match display resolution
– Number of pixels fetched is
static as user zooms
• Pyramids are not used
during analysis
5 x 5 pixel
block
Gianni Campanile
Programmazione
Mashup ?
• Programmazione Desktop:
– Personalizzazione del desktop
▪ Wizard, opzioni
– Geoprocessing
▪ Composizione di Tool elementari (ad.es. Model Builder)
– Nuovi tool o workflow complessi
▪ Classi C++/Java (ad.es. ArcObjects)
• Programmazione Web:
– Web application complesse
▪ Classi C++/Java (ad.es. ADF)
– Geoprocessing
▪ Web Services SOAP (ad.es. Geocoding)
– Web API
▪ AJAX, Scripting, Mashup
Gianni Campanile
In collaborazione con
Pag. 37
Sistemi Informativi Geografici
Anno accademico 2009/2010
Architettura Web GIS Server Side
Desktop
•
•
•
•
•
3D Viewers
Browser
Php
Java
.Net
Classi ADF
…
Mobile
Web Server
Dati Locali
Altri GIS
Server
ArcGIS Server
ArcGIS Server
ArcEGON
Geodatabase
Mashup ??
Mashup ?
• Letteralmente “poltiglia”
• Significa integrare dati
provenienti da diverse fonti
• Viene implementata tramite
linguaggi di scripting
(Javascript, Flex,
Silverlight)
• E’ una programmazione
“client-side” (o perlomeno
così sembra)
Una cosa da parrucchieri ?
... si riutilizzano risorse web esistenti !
Gianni Campanile
In collaborazione con
Pag. 38
Sistemi Informativi Geografici
Anno accademico 2009/2010
Architettura Web GIS client side
Desktop
3D Viewers
Browser
Mobile
Dati Locali
ArcGIS online
Mashup
Altri GIS
Server
•
•
•
•
•
Silverlight
Javascript
Flex
API
…
Web Server
ArcGIS Server
ArcGIS Server
ArcEGON
Geodatabase
Esempio
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Create a Map</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h4>Work flow:</h4>
<ul>
<li>Create a map.</li>
<li>Add an ArcGISTiledMapServiceLayer.</li>
</ul>
</body>
</html>
Gianni Campanile
In collaborazione con
Pag. 39
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempio
<script type="text/javascript"
src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script>
<script type="text/javascript">
dojo.require("esri.map");
var myMap, myTiledMapServiceLayer;
function init() {
myMap = new esri.Map("mapDiv");
myTiledMapServiceLayer = new
esri.layers.ArcGISTiledMapServiceLayer
("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_Wo
rld_2D/MapServer");
myMap.addLayer(myTiledMapServiceLayer);
}
dojo.addOnLoad(init);
</script>
.....
<div id="mapDiv" style="width:900px; height:600px; border:1px solid
#000;"></div>
Gianni Campanile
Mappe e altro
Mashup ?
• http://www.arcgis.com/
Gianni Campanile
In collaborazione con
Pag. 40
Sistemi Informativi Geografici
Anno accademico 2009/2010
Grazie
Gianni Campanile
[email protected]
In collaborazione con
Pag. 41
Scarica