Corso di Interfacce Utente - A.A. 2007-2008
PROGETTO DI LABORATORIO
Vedere la pagina principale
del progetto per gli altri documenti.
Descrizione dell'applicazione "Mappe stradali interattive"
L'applicazione e' una versione semplificata di un servizio
di mappe stradali on-line.
Una mappa stradale e' una un grafo piano dove
-
i nodi del grafo sono punti di incrocio fra strade
-
gli archi del grafo sono segmenti di strada compresi
tra due incroci
Un segmento di strada e' caratterizzato, oltre che dai punti
iniziale e finale, dalla sua larghezza,
dal nome della via a cui appartiene,
dai numeri civici che si affacciano su quel
segmento di via (un intervallo di
numeri pari e uno di numeri dispari).
-
estremi e larghezza serviranno per visualizzarlo
-
nome e numeri civici serviranno per la ricerca
Un punto di incrocio, o snodo, non contiene per noi altre
informazioni, ma solo le sue coordinate geometriche.
Nota: In questa applicazione semplificata non sono presenti
le piazze.
Sulla mappa inoltre sono presenti infrastrutture
ciascuna caratterizzata da un tipo (in una lista predefinita di
tipi: museo, ospedale, cinema ecc.), da un proprio nome,
e da un indirizzo (nome della via, numero civico).
Funzionalita'
I servizi che l'applicazione, tramite la sua interfaccia,
fornisce all'utente sono i seguenti.
- (A)
Visualizzare la mappa, per intero o limitatamente ad
un riquadro:
- il livello di dettaglio della visualizzazione sara' diverso
secondo l'ampiezza del riquadro visualizzato rispetto alla
finestra di visualizzazione
- il livello di dettaglio massimo
disegna tutti i segmenti di strada come
poligoni secondo la larghezza della strada;
il livello di dettaglio puo' essere diminuito disegnando
come semplici linee, o non disegnando affatto, alcuni segmenti,
in base alla loro larghezza
- l'utente deve poter eseguire operazioni
di zoom e di traslazione
- (B)
In base a dati inseriti dall'utente,
ricercare elementi ed evidenziarli visivamente sulla mappa:
- dato il nome di una via, mostrare tutti i segmenti
della strada corrispondente
- dato il nome di una via e un numero civico, mostrare
il segmento che lo contiene
- dato il nome di un'infrastruttura, mostrare il segmento di via
che la contiene (e fornire anche il suo indirizzo)
- (C)
Dato un punto che l'utente seleziona sulla mappa,
fornire informazioni all'utente:
- le informazioni sul segmento di via, o sulla via,
nel quale si trova il punto (nome della via, intervalli
di numeri civici)
- l'elenco (con dettagli relativi) delle
infrastrutture presenti in quel segmento di via,
o in quella via
- (D)
Dato uno o piu' tipi di infrastruttura,
evidenziare la presenza di infrastrutture di tale/i tipo/i
sul riquadro di mappa correntemente visualizzato.
Opzioni di progetto
Si chiede di svolgere il progetto in una delle seguenti varianti:
-
Solo i punti (A), (B), (C)
con l'interfaccia che stia tutta
dentro una finestra di dimensioni 240 x 320
pixel (schermo di un palmare).
-
Solo i punti (A), (B), (D)
con l'interfaccia che funzioni usando solo la tastiera,
senza usare il mouse
-
Tutti i punti (A), (B), (C), (D) usando nell'interfaccia
una dimensione di carattere mai minore di 14pt e icone
di dimensioni grandi (per utenti con problemi di vista).
In generale (salvo indicazioni contrarie dell'opzione scelta):
- La schermata iniziale deve avere dimensioni 800 x 600 pixel
- se vi sono finestre aggiuntive, queste devono comparire in modo
ordinato ed essere comunque sempre visibili in un monitor da 1024 x 768
pixel
- l'utente a cui ci si rivolge puo' usare il mouse,
ma preferisce in alcuni
casi i comandi veloci da tastiera
Materiale fornito
Saranno fornite classi Java per la mappa, i punti di snodo,
i segmenti di via e tutti gli altri elementi che intervengono
nell'applicazione.
Non dovete implementare voi i vari oggetti
della mappa, ma solo visualizzarli nell'interfaccia.
Tali classi conterranno gia'
tutte le operazioni richieste (per esempio l'operazione
che calcola il percorso per andare da un segmento
di via a un altro).
Non dovete implementare voi le operazioni, ma solo
raccogliere i dati dall'utente, chiamare
l'operazione, e mostrare all'utente i risultati.