Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/frafra/prontosoccorsoliguria

Visualizzazione grafica dei dati del 118 ligure
https://github.com/frafra/prontosoccorsoliguria

Last synced: about 2 months ago
JSON representation

Visualizzazione grafica dei dati del 118 ligure

Awesome Lists containing this project

README

        

### Pronto Soccorso Liguria

# Introduzione

Questo programma estrapola le informazioni dal sito del 118 ligure, le
trasforma, e crea una mappa della situazione attuale.

E' stato creato in quanto il sito dove vengono presi i dati, oltre a non
seguire gli standard e ad essere spesso non disponibile, non permette
di avere una visione grafica di insieme e una interpretazione accurata
dei dati. Un utente che utilizza questa interfaccia con un
aggiornamento delle informazioni nell'ordine di qualche minuto, richiede
un carico al server principale nettamente minore. Di conseguenza
consiglio a chiunque dovesse accedere ai dati permettendosi un breve
ritardo di usare questo programma, così da non sovraccaricare il
server principale.

# Cosa necessita per funzionare

Per funzionare correttamente richiede di:
- Python 2.7 superiore (Python 3.x incluso)
Le versioni inferiori alla 2.7 non funzionano in quanto la libreria
che si occupa del parsing HTML non riesce correttamente a gestire i
numerosi problemi presenti sulle pagini che forniscono i dati
iniziali (legati alla non osservazione dello standard XHTML).
Il programma è stato testato con successo sotto Python 3.3 e Python
2.7 su piattaforma GNU/Linux.
- Una chiave per le API di Bing Maps valida
La chiave è necessaria in quanto il programma utilizza Bing Maps
per determinare la posizione della chiamata sulla mappa. E' stato
scelto questo servizio in quanto s'è rivelato particolarmente
preciso in fase di testing, soprattutto per quanto riguarda la
localizzazione dei quartieri delle città.

# FAQ

Q: Perché il programma utilizza Bing Maps?
A: Perché nei test si è rivelato il migliore per individuare le
posizioni dei quartieri. Mi piacerebbe in futuro supportare anche
Nominatim, ma attualmente non è adatto per svolgere questo compito.

Q: Perché le informazioni non mi si aggiornano?
A: Perché devi avviare nuovamente il programma: non è un demone.

Q: Perché il programma usa Leaflet e non OpenLayers?
A: Perché con poco codice riesco ad avere un buon risultato grafico.

Q: Ho provato ad utilizzare un altro sistema per la risoluzione degli
indirizzi, ma il programma continua a non mostrare il dato
aggiornato: come mai?
A: Per limitare le interrogazione al server delle mappe ho implementato
un sistema di caching. Rimuovi geo.json.

Q: Se importo file json in un altro programma, i punti vengono
posizionati in maniera sbagliata!
A: Leaflet inverte la latitudine con la longitudine.

Q: Il programma quando viene avviato non scrive niente sul terminale!
A: Quando le operazioni procedono come previsto, non viene stampato output.

Q: Il programma non stampa output eppure non aggiorna le informazioni!
A: Dato che il server principale molto spesso non funziona, in caso di
timeout o di errore interno del server, il programma si chiude
senza dare output, ma il codice di uscita è 1 anziché 0.

Q: Come posso capire se il programma è terminato in maniera anomala? A:
A: Per avere un output in caso di errore si può avviare il programma da
terminale in questa maniera:

python parser.py
if [ $? != 0 ]; then
echo "Il programma non ha avuto successo"
fi

Q: Perché il programma mi mostra un errore?
A: Se il programma resituisce errori vuol dire che:
- E' stato terminato dall'utente
- La cache è corrotta
Questo può accadere dopo un aggiornamento. Eliminare il file di
caching (solitamente chiamato "geo.json")
- L'indirizzo non è stato trovato; l'evento sarà ignorato
- Si tratta di un BUG (per favore, segnalamelo)

Q: Perché non riesco ad aprire l'interfaccia in locale?
A: Perché il software richiede Leaflet da internet ed effettua delle
chiamate AJAX per aggiornare la mappa.

# Tecnologie utilizzate

Questo programma si avvale di:
- Python (http://python.org)
- HTML5
- CSS
- Javascript
- Leaflet (http://leafletjs.com/)
- leaflet-ajax
- leaflet.awesome-markers
- font-awesome
- Geojson
- Bing Maps

# Licenza e crediti

Questo programma è sviluppato da Francesco Frassinelli
(http://frafra.eu) ed è stato rilasciato sotto licenza AGPLv3.

# Link

Demo: http://prontosoccorso.frafra.eu