Sistema per la localizzazione della flotta mezzi VVF
Inserisce un nuovo messaggio di geo-localizzazione in archivio.
Esempio di payload.
{
"codiceMezzo": "APS.12345",
"classiMezzo": [ "APS", "benzina" ],
"localizzazione": {
"lat": 14.2345,
"lon": 43.4321
},
"istanteAcquisizione": "2017-11-27T10:12:00.1234Z",
"fonte": {
"codiceFonte": "AH222",
"classeFonte": "gpsTracker"
},
"infoFonte": {
}
}
Restituisce la location del messaggio inserito, ed il messaggio stesso.
Restituisce il messaggio avente id
specificato.
Restituisce la posizione per il mezzo avente codiceMezzo
specificato.
Restituisce la posizione dell'intera flotta. Vengono restituite solo le posizioni dei mezzi aggiornate nelle ultime 24h.
GET /api/posizioneFlotta/perClassi?classiMezzo={classe1}&classiMezzo={classe2}&classiMezzo={classe3}
Restituisce la posizione dell'intera flotta, limitatamente ai mezzi delle classi specificate come parametro d'ingresso. Vengono restituite solo le posizioni dei mezzi aggiornate nelle ultime 24h.
GET /api/prossimita?lat={lat}&lon={lon}&distanzaMaxMt={distMt}&classiMezzo={classe1}&classiMezzo={classe2}
Restituisce i mezzi in prossimità del punto specificato, entro un raggio massimo specificato. E' opzionalmente possibile specificare un array di classi mezzo con cui filtrare i risultati dell'interrogazione. Vengono restituite solo le posizioni dei mezzi aggiornate nelle ultime 24h.
GET /api/inRettangolo?lat1={lat1}&lon1={lon1}&lat2={lat2}&lon2={lon2}&classiMezzo={classe1}&classiMezzo={classe2}
Restituisce i mezzi all'interno del box specificato. E' opzionalmente possibile specificare un array di classi mezzo con cui filtrare i risultati dell'interrogazione. Vengono restituite solo le posizioni dei mezzi aggiornate nelle ultime 24h.
Restituisce la posizione dei mezzi ai quali da troppo tempo non è associato alcun messaggio di posizione. Per es. se il parametro daSecondi
vale 86400, viene restituita la posizione dei mezzi che non hanno aggiornamenti di posizione da almeno un giorno.
Restituisce la posizione dei mezzi ai quali da troppo tempo non è associato alcun messaggio di posizione. La ricerca è limitata alle classi specificate.
L'applicazione è sviluppata in linguaggio C# con Visual Studio 2017 Community Edition. L'architettura è una WebApi, basata su servizi REST, con uno strato di persistenza basato su MongoDB.
- MongoDB.Driver: driver C# per l'integrazione con MongoDB;
- SimpleInjector: libreria per la Dependency Injection (DI);
- AutoMapper: libreria per il mapping convention based tra le classi di dominio e i DTO;
- log4net: libreria per il logging applicativo;
- NUnit v3: libreria per la stesura degli unit tests;
- Moq: libreria per la generazione di classi mock;
- Bogus: libreria per la generazione di istanze fake di classi.
Il codice sorgente è rilasciato nei termini della licenza AGPL-3.0.