51 lines
20 KiB
JavaScript
51 lines
20 KiB
JavaScript
import Map from 'ol/Map.js';
|
|
import OSM from 'ol/source/OSM.js';
|
|
import Overlay from 'ol/Overlay.js';
|
|
import TileLayer from 'ol/layer/Tile.js';
|
|
import View from 'ol/View.js';
|
|
import {fromLonLat, toLonLat} from 'ol/proj.js';
|
|
import {toStringHDMS} from 'ol/coordinate.js';
|
|
|
|
const layer = new TileLayer({
|
|
source: new OSM(),
|
|
});
|
|
|
|
// map object that the overlays will be added to
|
|
const map = new Map({
|
|
layers: [layer],
|
|
target: 'map',
|
|
view: new View({
|
|
center: [0, 0],
|
|
zoom: 2,
|
|
}),
|
|
});
|
|
|
|
// string of JSON data from API - hardcoded in for proof of concept.
|
|
let jsonStr = '{"ArrayOfObjTrainPositions":{"$":{"xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns":"http://api.irishrail.ie/realtime/"},"objTrainPositions":[{"TrainStatus":["N"],"TrainLatitude":["51.9018"],"TrainLongitude":["-8.4582"],"TrainCode":["A209"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A209\\nCork to Dublin Heuston\\nExpected Departure 09:25"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["N"],"TrainLatitude":["51.9018"],"TrainLongitude":["-8.4582"],"TrainCode":["D557"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D557\\nCork to Midleton\\nExpected Departure 09:15"],"Direction":["To Midleton"]},{"TrainStatus":["N"],"TrainLatitude":["51.9212"],"TrainLongitude":["-8.17579"],"TrainCode":["P556"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P556\\nMidleton to Cork\\nExpected Departure 09:15"],"Direction":["To Cork"]},{"TrainStatus":["N"],"TrainLatitude":["52.6587"],"TrainLongitude":["-8.62397"],"TrainCode":["A782"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A782\\nLimerick to Galway\\nExpected Departure 09:20"],"Direction":["To Galway"]},{"TrainStatus":["N"],"TrainLatitude":["53.1855"],"TrainLongitude":["-6.80807"],"TrainCode":["P406"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P406\\nNewbridge to Grand Canal Dock\\nExpected Departure 09:09"],"Direction":["Northbound"]},{"TrainStatus":["N"],"TrainLatitude":["53.2043"],"TrainLongitude":["-6.10046"],"TrainCode":["E811"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E811\\nBray to Malahide\\nExpected Departure 09:25"],"Direction":["Northbound"]},{"TrainStatus":["N"],"TrainLatitude":["53.2043"],"TrainLongitude":["-6.10046"],"TrainCode":["E912"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E912\\nBray to Howth\\nExpected Departure 09:15"],"Direction":["Northbound"]},{"TrainStatus":["N"],"TrainLatitude":["53.3464"],"TrainLongitude":["-6.29461"],"TrainCode":["A702"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A702\\nDublin Heuston to Galway\\nExpected Departure 09:25"],"Direction":["To Galway"]},{"TrainStatus":["N"],"TrainLatitude":["53.3891"],"TrainLongitude":["-6.07401"],"TrainCode":["E215"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E215\\nHowth to Bray\\nExpected Departure 09:20"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["0"],"TrainLongitude":["0"],"TrainCode":["A202"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A202\\n07:00 - Dublin Heuston to Cork (0 mins late)\\nDeparted Killarney Junction next stop Cork"],"Direction":["To Cork"]},{"TrainStatus":["R"],"TrainLatitude":["0"],"TrainLongitude":["0"],"TrainCode":["A700"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A700\\n07:35 - Dublin Heuston to Galway (3 mins late)\\nDeparted Athlone Midland Yard next stop Ballinasloe"],"Direction":["To Galway"]},{"TrainStatus":["R"],"TrainLatitude":["0"],"TrainLongitude":["0"],"TrainCode":["A802"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A802\\n09:08 - Athlone to Westport (3 mins late)\\nDeparted Athlone Midland Yard next stop Roscommon"],"Direction":["To Westport"]},{"TrainStatus":["R"],"TrainLatitude":["0"],"TrainLongitude":["0"],"TrainCode":["D204"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D204\\n09:20 - Dublin Heuston to Portlaoise (-10 mins late)\\nArrived Inchicore Advance Starter next stop Park West and Cherry Orchard"],"Direction":["To Portlaoise"]},{"TrainStatus":["R"],"TrainLatitude":["0"],"TrainLongitude":["0"],"TrainCode":["D512"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D512\\n08:50 - Mallow to Cork (0 mins late)\\nDeparted Killarney Junction next stop Cork"],"Direction":["To Cork"]},{"TrainStatus":["R"],"TrainLatitude":["52.5009"],"TrainLongitude":["-8.20003"],"TrainCode":["A303"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A303\\n07:05 - Tralee to Dublin Heuston (-2 mins late)\\nArrived Limerick Junction next stop Dublin Heuston"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["52.5828"],"TrainLongitude":["-8.38682"],"TrainCode":["A407"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A407\\n08:55 - Limerick to Dublin Heuston (1 mins late)\\nDeparted Drumkeen next stop Limerick Junction"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["52.6404"],"TrainLongitude":["-8.52719"],"TrainCode":["A425"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A425\\n09:03 - Limerick to Limerick Junction (1 mins late)\\nDeparted Killonan next stop Limerick Junction"],"Direction":["To Limerick Junction"]},{"TrainStatus":["R"],"TrainLatitude":["52.7878"],"TrainLongitude":["-7.82293"],"TrainCode":["A204"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A204\\n08:00 - Dublin Heuston to Cork (3 mins late)\\nDeparted Templemore next stop Thurles"],"Direction":["To Cork"]},{"TrainStatus":["R"],"TrainLatitude":["52.992"],"TrainLongitude":["-6.9762"],"TrainCode":["A500"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A500\\n07:20 - Dublin Heuston to Waterford (0 mins late)\\nDeparted Athy next stop Carlow"],"Direction":["To Waterford"]},{"TrainStatus":["R"],"TrainLatitude":["52.992"],"TrainLongitude":["-6.9762"],"TrainCode":["A502"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A502\\n08:26 - Dublin Heuston to Carlow (0 mins late)\\nDeparted Athy next stop Carlow"],"Direction":["To Carlow"]},{"TrainStatus":["R"],"TrainLatitude":["52.992"],"TrainLongitude":["-6.9762"],"TrainCode":["A507"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A507\\n07:50 - Waterford to Dublin Heuston (2 mins late)\\nDeparted Athy next stop Kildare"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.0371"],"TrainLongitude":["-7.30086"],"TrainCode":["P209"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P209\\n09:13 - Portlaoise to Dublin Heuston (0 mins late)\\nDeparted Portlaoise next stop Portarlington"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.1454"],"TrainLongitude":["-7.06361"],"TrainCode":["A707"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A707\\n07:30 - Galway to Dublin Heuston (0 mins late)\\nArrived Monasterevin next stop Sallins"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.1454"],"TrainLongitude":["-7.06361"],"TrainCode":["D203"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D203\\n08:22 - Dublin Heuston to Portlaoise (-3 mins late)\\nArrived Monasterevin next stop Portarlington"],"Direction":["To Portlaoise"]},{"TrainStatus":["R"],"TrainLatitude":["53.146"],"TrainLongitude":["-7.18055"],"TrainCode":["A405"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A405\\n07:40 - Limerick to Dublin Heuston (2 mins late)\\nDeparted Portarlington next stop Newbridge"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.2043"],"TrainLongitude":["-6.10046"],"TrainCode":["E105"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E105\\n07:52 - Malahide to Greystones (8 mins late)\\nDeparted Bray next stop Greystones"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2364"],"TrainLongitude":["-6.11691"],"TrainCode":["E209"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E209\\n08:00 - Howth to Bray (6 mins late)\\nArrived Shankill next stop Bray"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2756"],"TrainLongitude":["-6.10333"],"TrainCode":["E210"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E210\\n08:10 - Malahide to Bray (1 mins late)\\nDeparted Dalkey next stop Killiney"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2756"],"TrainLongitude":["-6.10333"],"TrainCode":["E810"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E810\\n08:54 - Greystones to Malahide (-1 mins late)\\nArrived Dalkey next stop Glenageary"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2878"],"TrainLongitude":["-6.12712"],"TrainCode":["P653"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P653\\n07:54 - Maynooth to Bray (0 mins late)\\nArrived Sandycove next stop Bray"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2878"],"TrainLongitude":["-6.12712"],"TrainCode":["P775"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P775\\n09:00 - Bray to Dublin Connolly (-1 mins late)\\nDeparted Sandycove next stop Dun Laoghaire"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2954"],"TrainLongitude":["-6.15206"],"TrainCode":["E211"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E211\\n08:20 - Howth to Bray (0 mins late)\\nArrived Salthill and Monkstown next stop Dun Laoghaire"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.2954"],"TrainLongitude":["-6.15206"],"TrainCode":["E911"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E911\\n08:55 - Bray to Howth (0 mins late)\\nArrived Salthill and Monkstown next stop Seapoint"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3099"],"TrainLongitude":["-6.19498"],"TrainCode":["E106"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E106\\n08:30 - Malahide to Greystones (1 mins late)\\nDeparted Booterstown next stop Blackrock"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3099"],"TrainLongitude":["-6.19498"],"TrainCode":["E809"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E809\\n08:45 - Bray to Malahide (2 mins late)\\nArrived Booterstown next stop Sydney Parade"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3223"],"TrainLongitude":["-6.52356"],"TrainCode":["A206"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A206\\n09:00 - Dublin Heuston to Cork (0 mins late)\\nDeparted Hazelhatch next stop Portlaoise"],"Direction":["To Cork"]},{"TrainStatus":["R"],"TrainLatitude":["53.334"],"TrainLongitude":["-6.37868"],"TrainCode":["P207"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P207\\n08:12 - Portlaoise to Dublin Heuston (1 mins late)\\nDeparted Park West and Cherry Orchard next stop Dublin Heuston"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.3345"],"TrainLongitude":["-6.43038"],"TrainCode":["A205"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A205\\n07:00 - Cork to Dublin Heuston (-4 mins late)\\nDeparted Kishogue next stop Dublin Heuston"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.3347"],"TrainLongitude":["-6.22979"],"TrainCode":["P606"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P606\\n07:58 - Drogheda to Bray (2 mins late)\\nArrived Lansdowne Road next stop Sydney Parade"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3353"],"TrainLongitude":["-6.45233"],"TrainCode":["D404"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D404\\n08:31 - Grand Canal Dock to Hazelhatch (0 mins late)\\nDeparted Adamstown next stop Hazelhatch"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3397"],"TrainLongitude":["-6.23773"],"TrainCode":["E910"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E910\\n08:24 - Greystones to Howth (0 mins late)\\nArrived Grand Canal Dock next stop Dublin Pearse"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.347"],"TrainLongitude":["-6.25425"],"TrainCode":["D405"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D405\\n09:11 - Grand Canal Dock to Hazelhatch (0 mins late)\\nArrived Tara Street next stop Dublin Connolly"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3531"],"TrainLongitude":["-6.24591"],"TrainCode":["D803"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D803\\n09:10 - Dublin Connolly to Drogheda (4 mins late)\\nDeparted Dublin Connolly next stop Malahide"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3531"],"TrainLongitude":["-6.24591"],"TrainCode":["D908"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D908\\n09:10 - Dublin Pearse to Maynooth (0 mins late)\\nArrived Dublin Connolly next stop Drumcondra"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3531"],"TrainLongitude":["-6.24591"],"TrainCode":["E212"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E212\\n08:41 - Howth to Bray (4 mins late)\\nDeparted Dublin Connolly next stop Tara Street"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3602"],"TrainLongitude":["-7.79847"],"TrainCode":["A803"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A803\\n07:15 - Westport to Dublin Heuston (0 mins late)\\nDeparted Clonydonnin next stop Clara"],"Direction":["To Dublin Heuston"]},{"TrainStatus":["R"],"TrainLatitude":["53.3629"],"TrainLongitude":["-6.22753"],"TrainCode":["E213"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E213\\n08:50 - Malahide to Bray (2 mins late)\\nDeparted Clontarf Road next stop Dublin Connolly"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3632"],"TrainLongitude":["-6.25908"],"TrainCode":["A902"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A902\\n09:05 - Dublin Connolly to Sligo (4 mins late)\\nArrived Drumcondra next stop Maynooth"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3704"],"TrainLongitude":["-6.50598"],"TrainCode":["A903"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A903\\n06:40 - Sligo to Dublin Connolly (5 mins late)\\nArrived Leixlip (Louisa Bridge) next stop Broombridge"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3752"],"TrainLongitude":["-6.31388"],"TrainCode":["P735"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P735\\n08:40 - Maynooth to Dublin Connolly (5 mins late)\\nDeparted Pelletstown next stop Broombridge"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3776"],"TrainLongitude":["-6.39072"],"TrainCode":["D304"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D304\\n09:00 - Docklands to M3 Parkway (0 mins late)\\nDeparted Coolmine next stop Clonsilla"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.378"],"TrainLongitude":["-6.58993"],"TrainCode":["P655"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P655\\n09:10 - Maynooth to Dublin Pearse (5 mins late)\\nDeparted Maynooth next stop Leixlip (Louisa Bridge)"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3786"],"TrainLongitude":["-6.19131"],"TrainCode":["E107"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E107\\n09:00 - Howth to Greystones (0 mins late)\\nArrived Harmonstown next stop Killester"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3786"],"TrainLongitude":["-6.19131"],"TrainCode":["E908"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E908\\n08:15 - Bray to Howth (2 mins late)\\nArrived Harmonstown next stop Raheny"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3853"],"TrainLongitude":["-6.44205"],"TrainCode":["P306"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P306\\n09:08 - M3 Parkway to Docklands (0 mins late)\\nArrived Hansfield next stop Clonsilla"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.3909"],"TrainLongitude":["-6.15672"],"TrainCode":["E807"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E807\\n07:54 - Greystones to Malahide (7 mins late)\\nArrived Howth Junction next stop Clongriffin"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.4032"],"TrainLongitude":["-6.14839"],"TrainCode":["P607"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P607\\n08:30 - Drogheda to Dublin Pearse (1 mins late)\\nDeparted Clongriffin next stop Dublin Connolly"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.4509"],"TrainLongitude":["-6.15649"],"TrainCode":["A605"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A605\\n05:35 - Rosslare Europort to Dundalk (1 mins late)\\nArrived Malahide next stop Donabate"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.4509"],"TrainLongitude":["-6.15649"],"TrainCode":["E214"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E214\\n09:12 - Malahide to Bray (1 mins late)\\nDeparted Malahide next stop Portmarnock"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.6118"],"TrainLongitude":["-6.18226"],"TrainCode":["P701"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P701\\n09:00 - Drogheda to Dublin Connolly (0 mins late)\\nArrived Balbriggan next stop Skerries"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.712"],"TrainLongitude":["-6.33538"],"TrainCode":["D802"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D802\\n07:54 - Dublin Pearse to Dundalk (1 mins late)\\nDeparted Drogheda next stop Dundalk"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["53.8591"],"TrainLongitude":["-7.9164"],"TrainCode":["A900"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A900\\n06:55 - Dublin Connolly to Sligo (0 mins late)\\nDeparted Dromod next stop Carrick on Shannon"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["54.0007"],"TrainLongitude":["-6.41291"],"TrainCode":["A122"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A122\\n07:35 - Dublin Connolly to Belfast (7 mins late)\\nDeparted Dundalk next stop Newry"],"Direction":["Northbound"]},{"TrainStatus":["R"],"TrainLatitude":["54.0007"],"TrainLongitude":["-6.41291"],"TrainCode":["A123"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A123\\n08:00 - Belfast to Dublin Connolly (0 mins late)\\nArrived Dundalk next stop Dublin Connolly"],"Direction":["Southbound"]},{"TrainStatus":["R"],"TrainLatitude":["54.2723"],"TrainLongitude":["-8.48249"],"TrainCode":["A905"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A905\\n09:05 - Sligo to Dublin Connolly (1 mins late)\\nDeparted Sligo next stop Collooney"],"Direction":["Southbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.1855"],"TrainLongitude":["-6.80807"],"TrainCode":["D403"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D403\\n08:10 - Grand Canal Dock to Newbridge(3 mins late)\\nTERMINATED Newbridge at 09:07"],"Direction":["Southbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.3433"],"TrainLongitude":["-6.24829"],"TrainCode":["P654"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P654\\n08:15 - Maynooth to Dublin Pearse(0 mins late)\\nTERMINATED Dublin Pearse at 09:12"],"Direction":["Southbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.3509"],"TrainLongitude":["-6.23929"],"TrainCode":["P305"],"TrainDate":["12 Jan 2023"],"PublicMessage":["P305\\n08:35 - M3 Parkway to Docklands(0 mins late)\\nTERMINATED Docklands at 09:12"],"Direction":["Southbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.3531"],"TrainLongitude":["-6.24591"],"TrainCode":["A121"],"TrainDate":["12 Jan 2023"],"PublicMessage":["A121\\n06:50 - Belfast to Dublin Connolly(6 mins late)\\nTERMINATED Dublin Connolly at 09:06"],"Direction":["Southbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.378"],"TrainLongitude":["-6.58993"],"TrainCode":["D907"],"TrainDate":["12 Jan 2023"],"PublicMessage":["D907\\n08:23 - Dublin Pearse to Maynooth(0 mins late)\\nTERMINATED Maynooth at 09:14"],"Direction":["Northbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.3891"],"TrainLongitude":["-6.07401"],"TrainCode":["E907"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E907\\n07:55 - Bray to Howth(2 mins late)\\nTERMINATED Howth at 09:11"],"Direction":["Northbound"]},{"TrainStatus":["T"],"TrainLatitude":["53.4509"],"TrainLongitude":["-6.15649"],"TrainCode":["E806"],"TrainDate":["12 Jan 2023"],"PublicMessage":["E806\\n07:45 - Bray to Malahide(3 mins late)\\nTERMINATED Malahide at 09:07"],"Direction":["Northbound"]}]}}';
|
|
|
|
// parsing the JSON string to a JSON object
|
|
let jsonObj = JSON.parse(jsonStr);
|
|
|
|
// getting an array of train positions
|
|
let data = jsonObj.ArrayOfObjTrainPositions.objTrainPositions;
|
|
|
|
// array to hold the train overlay generated
|
|
const train_overlays = [];
|
|
|
|
// looping for each train in the data array
|
|
for (var i=0; i < data.length; i++) {
|
|
// getting the "overlays" div form index.html
|
|
document.getElementById("overlays").innerHTML += "<div class='marker' id=" + data[i].TrainCode + " title=" + data[i].TrainCode + "></div>";
|
|
|
|
// adding an overlay to the array of overlays with each train's longitude & latitude
|
|
train_overlays[i] = new Overlay({
|
|
position: fromLonLat([data[i].TrainLongitude, data[i].TrainLatitude]),
|
|
positioning: "center-center",
|
|
element: document.getElementById(String(data[i].TrainCode)),
|
|
stopEvent: false,
|
|
});
|
|
|
|
// adding the overlay to the map
|
|
map.addOverlay(train_overlays[i]);
|
|
}
|