Digitransit-palvelukokonaisuuden tärkeimmät osat ovat:
Ensimmäiset kolme yllämainituista palveluista tarvitsevat lähdeaineiston, jonka tuottamiseksi palvelualustalle on rakennettu vastaavat datalatausprosessit.
GTFS- ja karttadatalla varustettu reititysmoottori OpenTripPlanner tarjoaa joukon matkasuunnitteluun liittyviä toimintoja, kuten multimodaalinen ovelta ovelle reititys, pysäkki- ja linjahaut.
Pelias-osoitehakumoottorin avulla voidaan etsiä syötetyn merkkijonon paikkakoordinaatit, tai kysyä mikä paikka tai osoite on lähinnä annettua koordinaattia.
Taustakarttapalvelu tarjoaa karttatietoa rasteri- ja vektoritiilinä.
Reittiopas-käyttöliittymäpalvelu tarjoaa selainpohjaisen käyttöliittymän, jonka avulla alustan muita palveluja voidaan hyödyntää mm. tekemällä reittihakuja.
Näiden lisäksi Digitransit sisältää joukon erilaisia reaaliaikaa ja oheistietoa tarjoavia palveluja, jotka eivät ole välttämättömiä reitityspalvelun käyttöönoton kannalta. Tarkempi kuvaus osapalveluista löytyy kehittäjädokumentaatiosta.
Kaikki Digitransit-osapalvelut on pakattu valmiiksi Docker-konteiksi, joita pystyy varsin helposti ajamaan omalla palvelinalustalla. Konttien toimintaa pystyy myös jossain määrin ohjaamaan ympäristömuuttujien avulla.
Helpoin ratkaisu on käyttää Digitransitin tuottamaa lähdedataa (OpenTripPlanner ja Pelias data kontit sekä hsl-map-server), jolloin raskaita datalatausprosesseja ei tarvitse rakentaa. Rajoituksena on toki tällöin se, että tarjotun datan sisältö on sama kuin Digitransitissa. Reititys ei onnistu kaupungissa, jonka GTFS dataa ei tunneta Digitransit-alustalla, eikä osoitehaku löydä kohteita Suomen rajojen ulkopuolelta.
Mikäli oma data on tarpeen jossakin osapalvelussa, Digitransitin datalatausprosessi on tarpeen kopioida ja muokata halutuksi. Joiltakin osin tämä onnistu pelkillä ympäristömuuttujilla (esimerkiksi OpenTripPlanner datalataukseen voi lisätä uusia datalähteitä), mutta yleisessä tapauksessa on tarpeen tehdä oma versio github/hsldevcom lähdekoodikirjastoista ja muokata niitä, tai rakentaa oma datapalvelu.
OpenTripPlanner-reitiyksen datalatauskonfiguraatio on varsin helppo muokata käyttämään omaa dataa. Konfiguraatiossa luetellaan verkko-osoitteet, joista GTFS datapaketit haetaan, sekä OSM karttadatatiedostojen hakuosoite. Osoitelistan voi vaihtaa halutuksi.
Osoitehaun lähdeaineisto on määritelty joukolla skriptejä, jotka noutavat ja prosessoivat aineistopaketteja. Näitäkin on varsin helppo lisätä, poistaa ja muuttaa. Yksittäisen aineiston indeksointi osoitetietokantaan tehdään räätälöidyllä javascript-kirjastolla, esimerkiksi https://github.com/hsldevcom/pelias-gtfs. Datalatausjärjestelmään on sisäänrakennetty hallinnollisen hierarkian lisääminen kohteisiin käyttämällä WhosOnFirst-palvelusta haettua Suomen aluejakoa. Tämä menetelmä pitää korvata tai datasisältö vaihtaa Suomen rajojen ulkopuolella.
Taustakarttojen datalataus on vahvasti sidoksissa HSL:n tarjoamiin karttapalveluihin. Korvaava karttapalvelu on mahdollista luoda kehittäjädokumenttien ohjeiden mukaisesti.
On myös mahdollista ylläpitää vain osaa palveluista ja käyttää muilta osin Digitransitin rajapintoja; uusi Suomessa toimiva paikallinen reittiopas voi helposti hyödyntää koko maan kattavaa osoitehakua.
Esimerkki oman reittiopaspalvelun käynnistämisestä hsl-reittioppaan datalla:
docker run -d --rm -p 9080:8080 -e ROUTER_NAME=hsl -e JAVA_OPTS=-Xmx4g -e ROUTER_DATA_CONTAINER_URL=https://api.digitransit.fi/routing-data/v2/hsl hsldevcom/opentripplanner:prod
Nyt reititystä palvellaan osoitteessa localhost:9080.
docker run -d --rm --name pelias-data-container hsldevcom/pelias-data-container
docker run -d --rm --name pelias-api -p 3100:8080 --link pelias-data-container:pelias-data-container hsldevcom/pelias-api
Osoitehakua palvellaan osoitteessa localhost:3100. Avaa selain ja testaa haku: https://localhost:3100/v1/search?text=Helsinki
docker run -d --rm -p 8080:8080 -e OTP_URL=http://localhost:9080/otp/routers/hsl/ -e CONFIG=hsl -e GEOCODING_BASE_URL=localhost:3100/v1 hsldevcom/digitransit-ui
Nyt voit selata osoitteeseen localhost:8080 ja alkaa käyttämään omaa yksityistä reittopaspalvelua, jonka taustakartat tulevat Digitransitista.
Reittioppaan oletusteema ei sisällä kaupunkikohtaisia piirteitä. Se on konfiguroitu koko Suomen datalle soveltuvilla asetuksilla.
Käyttöliittymä voidaan teemoittaa ja konfiguroida sopivaksi halutulle kohdealueelle luomalla uusi konfiguraatiotiedosto lähdekoodikirjaston
https://github.com/HSLdevcom/digitransit-ui app/configurations
kansioon. Tarkemmat ohjeet löytyvät osoitteesta
https://github.com/HSLdevcom/digitransit-ui/blob/master/docs/Themes.md .
Esimerkkejä:
Näillä resursseilla pystyy palvelemaan useita samanaikaisia käyttäjiä lähes viiveettä. Kuorman kasvaessa on tarpeen ottaa käyttöön kuormantasausratkaisuja, joilla kyselyt saadaan hajautettua usealle palvelimelle. Esimerkki: Digitransit palvelee Helsingin alueen väestöä runsaalla 20:llä reititysmoottori-instanssilla.
Palvelukuormaa on mahdollista alentaa ja palvelun vasteaikaa parantaa erilaisilla välimuistiratkaisuilla (CDN, proxy caching). Erityisesti taustakarttapalvelu hyötyy näistä.
Digitransitin käyttämä versio OpenTripPlanner-reititysmoottorista on varsin geneerinen, eikä sisällä merkittäviä pelkästään Suomea koskevia muutoksia. Joitakin erityispiirteitä, kuten paikallinen lippuhintalaskenta, voidaan aktivoida konfiguraation avulla.
Pelias-osoitehakua on kehitetty tukemaan monikielisiä hakuja ja skandinaavista merkistöä. Maakohtaiset erityispiirteet on määritetty konfiguraatiotiedostossa.