diff --git a/code/json/routing_distancematrix.json b/code/json/routing_distancematrix.json new file mode 100644 index 0000000..208108b --- /dev/null +++ b/code/json/routing_distancematrix.json @@ -0,0 +1,32 @@ +{ + "destination_addresses" : + [ + "11 Canal Reach, London N1C 4DB, UK" + ], + "origin_addresses" : + [ + "1 Carville St, Finsbury Park, London N4 3PE, UK" + ], + "rows" : + [ + { + "elements" : + [ + { + "distance" : + { + "text" : "5.4 km", + "value" : 5411 + }, + "duration" : + { + "text" : "27 mins", + "value" : 1607 + }, + "status" : "OK" + } + ] + } + ], + "status" : "OK" +} \ No newline at end of file diff --git a/code/json/routing_routeapi.json b/code/json/routing_routeapi.json new file mode 100644 index 0000000..854bd93 --- /dev/null +++ b/code/json/routing_routeapi.json @@ -0,0 +1,70 @@ +{ + "routes": [ + { + "legs": [ + { + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 2, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 3, + "stepEndIndex": 3, + "navigationInstruction": { + "instructions": "Subway towards Brixton" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 4, + "stepEndIndex": 4, + "navigationInstruction": { + "instructions": "Walk to Euston" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 5, + "stepEndIndex": 5, + "navigationInstruction": { + "instructions": "Subway towards Morden via Bank" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 6, + "stepEndIndex": 6, + "navigationInstruction": { + "instructions": "Walk to Bank Station" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 7, + "stepEndIndex": 7, + "navigationInstruction": { + "instructions": "Light rail towards Woolwich Arsenal" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 8, + "stepEndIndex": 9, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 22438, + "duration": "3463s", + "staticDuration": "3463s" + } + ] +} diff --git a/code/json/routing_routeapi_full.json b/code/json/routing_routeapi_full.json new file mode 100644 index 0000000..311cda1 --- /dev/null +++ b/code/json/routing_routeapi_full.json @@ -0,0 +1,752 @@ +{ + "routes": [ + { + "legs": [ + { + "distanceMeters": 22438, + "duration": "3462s", + "staticDuration": "3462s", + "polyline": { + "encodedPolyline": "q_vyHfrTIFMHQK}AwDw@gDONK_@cB_E?MzBiI@UbIt@rCRpFj@pATpJdCzAM|Ac@nCcAdF_AhEm@dFqAfFeBlFsBtAg@pFuA~KiD`Cm@|Es@jDQzH?bCLtCp@pA`@pAh@dBbA|AfAjAbArBfClLvOfBnCzB`EbCvFjCbHbC|G|Jd]xAhGfCnLrCvZ`@lCPr@xIvYsAvAYn@S~Cl@Td@j@x@vBzCfKDCN{@D}@CgA[{Dc@iDyMuc@a@oBQqAsCwZqDc~AAaCT_BXsBdUauAjBoKf@cBVg@l@m@xDgBrAe@`AO|GMrEc@`Eg@~@FtHfAvBd@~L~EfNbE^?fAk@dDuBrGiF^bBoAc@AK`E{C^o@VuAn@sFfAsKv@uIl@aM^_FJsBN_HG_GCkAMuASeAw@_CcAsDUaB_@kGa@yEQ}EWaEc@eOYuNWgFi@kZ]{NIcLk@y_@CgFS{MH_EKgFUaDF}GRwG`@}Ht@iId@cEfBiKTaBTs@pBiIzA_Fz@mC|AyFrAwG`AkGD}@?kAQ_F@eARiBh@kDPuBr@uMPiBPw@FsADwEAoECYAsGa@wLOwEiAsM]aB]eAcA}Bm@oB_@_CaCaUg@gDa@uB_@kA[o@iAcBq@o@}BcBq@a@q@WeF_Am@Y{@aAo@{@o@kAu@qB_@yAEaADiAL{@Vi@r@cApByB|@{@bAe@`EwAv@MjEsB^MhAo@|Bw@hD}@d@WxKiIp@_Al@qAXiATaCV}CVwAd@yArEsKzAoErAgFpBuI|@uELeAJuBd@_ENoBTiELmE@mEIoGi@qZSiFCiDHuFE{AG_AY_Bg@aBe@kAqCoFWw@OiACmARgDCqAOoAWyAGeAHoKF_BL{@fAqEMMpA}BGCS`Ac@bB][I@EGBuBIO?K" + }, + "startLocation": { + "latLng": { + "latitude": 51.5636071, + "longitude": -0.110597 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.503823499999996, + "longitude": 0.0490617 + } + }, + "steps": [ + { + "distanceMeters": 6, + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "q_vyHfrTIF" + }, + "startLocation": { + "latLng": { + "latitude": 51.5636071, + "longitude": -0.110597 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "6 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 19, + "staticDuration": "18s", + "polyline": { + "encodedPolyline": "qevyHlgTON" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "19 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 102, + "staticDuration": "85s", + "polyline": { + "encodedPolyline": "afvyH|gTK_@cB_E" + }, + "startLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5652057, + "longitude": -0.1078344 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Wells Terrace" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "qivyHn`T" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "navigationInstruction": { + "instructions": "Take entrance " + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 133, + "staticDuration": "60s", + "polyline": { + "encodedPolyline": "qivyHn`TzBiI" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.56459, + "longitude": -0.10610900000000001 + } + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 5202, + "staticDuration": "392s", + "polyline": { + "encodedPolyline": "uevyHdvS@UbIt@rCRpFj@pATpJdCzAM|Ac@nCcAdF_AhEm@dFqAfFeBlFsBtAg@pFuA~KiD`Cm@|Es@jDQzH?bCLtCp@pA`@pAh@dBbA|AfAjAbArBfClLvOfBnCzB`EbCvFjCbHbC|G|Jd]xAhGfCnLrCvZ`@lCPr@xIvYsAvA" + }, + "startLocation": { + "latLng": { + "latitude": 51.56459, + "longitude": -0.10610900000000001 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.528693999999994, + "longitude": -0.13204 + } + }, + "navigationInstruction": { + "instructions": "Subway towards Brixton" + }, + "localizedValues": { + "distance": { + "text": "5.2 km" + }, + "staticDuration": { + "text": "7 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "Euston", + "location": { + "latLng": { + "latitude": 51.528693999999994, + "longitude": -0.13204 + } + } + }, + "arrivalTime": "2024-03-04T09:20:32Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.56459, + "longitude": -0.10610900000000001 + } + } + }, + "departureTime": "2024-03-04T09:14:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:20 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:14 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Brixton", + "headway": "120s", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Victoria line", + "uri": "https://tfl.gov.uk/modes/tube/", + "color": "#00a3e0", + "nameShort": "Victoria", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Subway" + }, + "type": "SUBWAY", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-underground.png" + } + }, + "stopCount": 4 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 21, + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "ieoyHfxXYn@" + }, + "startLocation": { + "latLng": { + "latitude": 51.528693999999994, + "longitude": -0.13204 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.528819999999996, + "longitude": -0.13227500000000003 + } + }, + "localizedValues": { + "distance": { + "text": "21 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 5627, + "staticDuration": "600s", + "polyline": { + "encodedPolyline": "cfoyHvyXS~Cl@Td@j@x@vBzCfKDCN{@D}@CgA[{Dc@iDyMuc@a@oBQqAsCwZqDc~AAaCT_BXsBdUauAjBoKf@cBVg@l@m@xDgBrAe@`AO|GMrEc@`Eg@~@FtHfAvBd@~L~EfNbE^?fAk@dDuBrGiF^bB" + }, + "startLocation": { + "latLng": { + "latitude": 51.528819999999996, + "longitude": -0.13227500000000003 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.511845, + "longitude": -0.088246899999999989 + } + }, + "navigationInstruction": { + "instructions": "Subway towards Morden via Bank" + }, + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "staticDuration": { + "text": "10 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "Bank Station", + "location": { + "latLng": { + "latitude": 51.511845, + "longitude": -0.088246899999999989 + } + } + }, + "arrivalTime": "2024-03-04T09:35:00Z", + "departureStop": { + "name": "Euston", + "location": { + "latLng": { + "latitude": 51.528819999999996, + "longitude": -0.13227500000000003 + } + } + }, + "departureTime": "2024-03-04T09:25:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:35 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:25 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Morden via Bank", + "headway": "180s", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Northern Line", + "uri": "https://tfl.gov.uk/modes/tube/", + "color": "#000000", + "nameShort": "Northern", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Subway" + }, + "type": "SUBWAY", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-underground.png" + } + }, + "stopCount": 6 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 45, + "staticDuration": "60s", + "polyline": { + "encodedPolyline": "_|kyHpfPoAc@" + }, + "startLocation": { + "latLng": { + "latitude": 51.511845, + "longitude": -0.088246899999999989 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.512236699999995, + "longitude": -0.0880733 + } + }, + "localizedValues": { + "distance": { + "text": "45 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 10907, + "staticDuration": "1320s", + "polyline": { + "encodedPolyline": "o~kyHlePAK`E{C^o@VuAn@sFfAsKv@uIl@aM^_FJsBN_HG_GCkAMuASeAw@_CcAsDUaB_@kGa@yEQ}EWaEc@eOYuNWgFi@kZ]{NIcLk@y_@CgFS{MH_EKgFUaDF}GRwG`@}Ht@iId@cEfBiKTaBTs@pBiIzA_Fz@mC|AyFrAwG`AkGD}@?kAQ_F@eARiBh@kDPuBr@uMPiBPw@FsADwEAoECYAsGa@wLOwEiAsM]aB]eAcA}Bm@oB_@_CaCaUg@gDa@uB_@kA[o@iAcBq@o@}BcBq@a@q@WeF_Am@Y{@aAo@{@o@kAu@qB_@yAEaADiAL{@Vi@r@cApByB|@{@bAe@`EwAv@MjEsB^MhAo@|Bw@hD}@d@WxKiIp@_Al@qAXiATaCV}CVwAd@yArEsKzAoErAgFpBuI|@uELeAJuBd@_ENoBTiELmE@mEIoGi@qZSiFCiDHuFE{AG_AY_Bg@aBe@kAqCoFWw@OiACmARgDCqAOoAWyAGeAHoKF_BL{@fAqEMM" + }, + "startLocation": { + "latLng": { + "latitude": 51.512236699999995, + "longitude": -0.0880733 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.503653, + "longitude": 0.0483353 + } + }, + "navigationInstruction": { + "instructions": "Light rail towards Woolwich Arsenal" + }, + "localizedValues": { + "distance": { + "text": "10.9 km" + }, + "staticDuration": { + "text": "22 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "London City Airport", + "location": { + "latLng": { + "latitude": 51.503653, + "longitude": 0.0483353 + } + } + }, + "arrivalTime": "2024-03-04T10:03:00Z", + "departureStop": { + "name": "Bank Station", + "location": { + "latLng": { + "latitude": 51.512236699999995, + "longitude": -0.0880733 + } + } + }, + "departureTime": "2024-03-04T09:41:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "10:03 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:41 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Woolwich Arsenal", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "uri": "https://tfl.gov.uk/modes/dlr/", + "color": "#00afad", + "nameShort": "DLR", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Light rail" + }, + "type": "TRAM", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/tram2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-dlr.png" + } + }, + "stopCount": 11 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 63, + "staticDuration": "64s", + "polyline": { + "encodedPolyline": "yhjyHcmHpA}B" + }, + "startLocation": { + "latLng": { + "latitude": 51.503653, + "longitude": 0.0483353 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5032434, + "longitude": 0.048965499999999995 + } + }, + "navigationInstruction": { + "instructions": "Take exit " + }, + "localizedValues": { + "distance": { + "text": "63 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 70, + "staticDuration": "54s", + "polyline": { + "encodedPolyline": "ofjyHeqHS`Ac@bB" + }, + "startLocation": { + "latLng": { + "latitude": 51.5032794, + "longitude": 0.0489907 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.503564399999995, + "longitude": 0.0481594 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Hartmann Rd" + }, + "localizedValues": { + "distance": { + "text": "70 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 85, + "staticDuration": "73s", + "polyline": { + "encodedPolyline": "ghjyH_lH][I@EGBuBIO?K" + }, + "startLocation": { + "latLng": { + "latitude": 51.503564399999995, + "longitude": 0.0481594 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.503823499999996, + "longitude": 0.0490617 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right\nPartial restricted usage road" + }, + "localizedValues": { + "distance": { + "text": "85 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "22.4 km" + }, + "duration": { + "text": "58 mins" + }, + "staticDuration": { + "text": "58 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 5, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 6, + "stepEndIndex": 6, + "navigationInstruction": { + "instructions": "Subway towards Brixton" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 7, + "stepEndIndex": 7, + "navigationInstruction": { + "instructions": "Walk to Euston" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 8, + "stepEndIndex": 8, + "navigationInstruction": { + "instructions": "Subway towards Morden via Bank" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 9, + "stepEndIndex": 9, + "navigationInstruction": { + "instructions": "Walk to Bank Station" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 10, + "stepEndIndex": 10, + "navigationInstruction": { + "instructions": "Light rail towards Woolwich Arsenal" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 11, + "stepEndIndex": 13, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 22438, + "duration": "3463s", + "staticDuration": "3463s", + "polyline": { + "encodedPolyline": "q_vyHfrTIFMHQK}AwDw@gDONK_@cB_E?MzBiI@UbIt@rCRpFj@pATpJdCzAM|Ac@nCcAdF_AhEm@dFqAfFeBlFsBtAg@pFuA~KiD`Cm@|Es@jDQzH?bCLtCp@pA`@pAh@dBbA|AfAjAbArBfClLvOfBnCzB`EbCvFjCbHbC|G|Jd]xAhGfCnLrCvZ`@lCPr@xIvYsAvAYn@S~Cl@Td@j@x@vBzCfKDCN{@D}@CgA[{Dc@iDyMuc@a@oBQqAsCwZqDc~AAaCT_BXsBdUauAjBoKf@cBVg@l@m@xDgBrAe@`AO|GMrEc@`Eg@~@FtHfAvBd@~L~EfNbE^?fAk@dDuBrGiF^bBoAc@AK`E{C^o@VuAn@sFfAsKv@uIl@aM^_FJsBN_HG_GCkAMuASeAw@_CcAsDUaB_@kGa@yEQ}EWaEc@eOYuNWgFi@kZ]{NIcLk@y_@CgFS{MH_EKgFUaDF}GRwG`@}Ht@iId@cEfBiKTaBTs@pBiIzA_Fz@mC|AyFrAwG`AkGD}@?kAQ_F@eARiBh@kDPuBr@uMPiBPw@FsADwEAoECYAsGa@wLOwEiAsM]aB]eAcA}Bm@oB_@_CaCaUg@gDa@uB_@kA[o@iAcBq@o@}BcBq@a@q@WeF_Am@Y{@aAo@{@o@kAu@qB_@yAEaADiAL{@Vi@r@cApByB|@{@bAe@`EwAv@MjEsB^MhAo@|Bw@hD}@d@WxKiIp@_Al@qAXiATaCV}CVwAd@yArEsKzAoErAgFpBuI|@uELeAJuBd@_ENoBTiELmE@mEIoGi@qZSiFCiDHuFE{AG_AY_Bg@aBe@kAqCoFWw@OiACmARgDCqAOoAWyAGeAHoKF_BL{@fAqEMMpA}BGCS`Ac@bB][I@EGBuBIO?K" + }, + "viewport": { + "low": { + "latitude": 51.502068799999996, + "longitude": -0.1359722 + }, + "high": { + "latitude": 51.565208, + "longitude": 0.0490617 + } + }, + "travelAdvisory": { + "transitFare": { + "currencyCode": "GBP", + "units": "3", + "nanos": 700000000 + } + }, + "localizedValues": { + "distance": { + "text": "22.4 km" + }, + "duration": { + "text": "58 mins" + }, + "staticDuration": { + "text": "58 mins" + }, + "transitFare": { + "text": "£3.70" + } + }, + "routeLabels": [ + "DEFAULT_ROUTE" + ] + } + ] +} diff --git a/code/json/routing_routeapi_with_alternative.json b/code/json/routing_routeapi_with_alternative.json new file mode 100644 index 0000000..37b6f00 --- /dev/null +++ b/code/json/routing_routeapi_with_alternative.json @@ -0,0 +1,4706 @@ +{ + "routes": [ + { + "legs": [ + { + "distanceMeters": 5906, + "duration": "1724s", + "staticDuration": "1724s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDvAqAs@mCAY[w@KCC@AQ?WOiABoCIAE?C??GKA[?IA?LAz@tIj@^?rDd@nF~@~DfAtC`AtD`BbCrArDdCfF~DlDfD`DdEvAlBpEfHzHxMlBzCrAdBzAzAjEpDlC`BvAp@l`@nP|Al@dAx@t@|@n@pAdAtC\\vApBjLb@`Bh@pAn@bA|@|@b@ZrAd@`ALxBKzIC`AI\\Ip@WrA{@`SeOK_@qE[?CDGOi@g@r@y@{AKEcABQHuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 4, + "staticDuration": "3s", + "polyline": { + "encodedPolyline": "u_vyHjrTEB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "4 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 56, + "staticDuration": "45s", + "polyline": { + "encodedPolyline": "qevyHlgTvAqA" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564134700000004, + "longitude": -0.1084646 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "56 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 64, + "staticDuration": "53s", + "polyline": { + "encodedPolyline": "ybvyHzdTs@mC" + }, + "startLocation": { + "latLng": { + "latitude": 51.564134700000004, + "longitude": -0.1084646 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5643874, + "longitude": -0.107747 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Goodwin St" + }, + "localizedValues": { + "distance": { + "text": "64 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "32s", + "polyline": { + "encodedPolyline": "mdvyHl`TAY[w@KCC@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5643874, + "longitude": -0.107747 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564624699999996, + "longitude": -0.10733459999999999 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Continue onto City N Pl" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 6, + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "{evyHx}SAQ" + }, + "startLocation": { + "latLng": { + "latitude": 51.564624699999996, + "longitude": -0.10733459999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564629, + "longitude": -0.1072443 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right" + }, + "localizedValues": { + "distance": { + "text": "6 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 91, + "staticDuration": "72s", + "polyline": { + "encodedPolyline": "}evyHf}S?WOiABoCIA" + }, + "startLocation": { + "latLng": { + "latitude": 51.564629, + "longitude": -0.1072443 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564740199999996, + "longitude": -0.106024 + } + }, + "localizedValues": { + "distance": { + "text": "91 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 3, + "staticDuration": "4s", + "polyline": { + "encodedPolyline": "sfvyHruSE?" + }, + "startLocation": { + "latLng": { + "latitude": 51.564740199999996, + "longitude": -0.106024 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5647659, + "longitude": -0.1060227 + } + }, + "localizedValues": { + "distance": { + "text": "3 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 13, + "staticDuration": "9s", + "polyline": { + "encodedPolyline": "yfvyHruSC??GKA" + }, + "startLocation": { + "latLng": { + "latitude": 51.5647659, + "longitude": -0.1060227 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564848800000007, + "longitude": -0.1059714 + } + }, + "localizedValues": { + "distance": { + "text": "13 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 16, + "staticDuration": "21s", + "polyline": { + "encodedPolyline": "igvyHhuS[?" + }, + "startLocation": { + "latLng": { + "latitude": 51.564848800000007, + "longitude": -0.1059714 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564994399999996, + "longitude": -0.1059656 + } + }, + "localizedValues": { + "distance": { + "text": "16 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 10, + "staticDuration": "8s", + "polyline": { + "encodedPolyline": "ehvyHhuSIA?L" + }, + "startLocation": { + "latLng": { + "latitude": 51.564994399999996, + "longitude": -0.1059656 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5650425, + "longitude": -0.1060251 + } + }, + "localizedValues": { + "distance": { + "text": "10 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 4381, + "staticDuration": "420s", + "polyline": { + "encodedPolyline": "ohvyHtuSAz@tIj@^?rDd@nF~@~DfAtC`AtD`BbCrArDdCfF~DlDfD`DdEvAlBpEfHzHxMlBzCrAdBzAzAjEpDlC`BvAp@l`@nP|Al@dAx@t@|@n@pAdAtC\\vApBjLb@`Bh@pAn@bA|@|@b@ZrAd@`ALxBKzIC`AI\\Ip@WrA{@`SeOK_@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5650373, + "longitude": -0.10603250000000002 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5311162, + "longitude": -0.1258659 + } + }, + "navigationInstruction": { + "instructions": "Train towards Horsham" + }, + "localizedValues": { + "distance": { + "text": "4.4 km" + }, + "staticDuration": { + "text": "7 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "St Pancras International", + "location": { + "latLng": { + "latitude": 51.5311162, + "longitude": -0.1258659 + } + } + }, + "arrivalTime": "2024-03-04T09:14:00Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.5650373, + "longitude": -0.10603250000000002 + } + } + }, + "departureTime": "2024-03-04T09:07:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:14 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:07 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Horsham", + "transitLine": { + "agencies": [ + { + "name": "Thameslink", + "phoneNumber": "+44 345 026 4700", + "uri": "http://www.thameslinkrailway.com/" + } + ], + "name": "Horsham - Peterborough", + "color": "#30104d", + "nameShort": "Thameslink", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Train" + }, + "type": "HEAVY_RAIL", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/rail2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-rail.png" + } + }, + "stopCount": 2 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 117, + "staticDuration": "118s", + "polyline": { + "encodedPolyline": "otoyHtqWqE[" + }, + "startLocation": { + "latLng": { + "latitude": 51.5311162, + "longitude": -0.1258659 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.532168999999996, + "longitude": -0.125728 + } + }, + "navigationInstruction": { + "instructions": "Take exit London St Pancras International Rail Station" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 20, + "staticDuration": "26s", + "polyline": { + "encodedPolyline": "a{oyHtpWDGOi@g@r@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5321717, + "longitude": -0.12571459999999998 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.532415799999995, + "longitude": -0.1257203 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pancras Rd/A5202" + }, + "localizedValues": { + "distance": { + "text": "20 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 174, + "staticDuration": "152s", + "polyline": { + "encodedPolyline": "s|oyHvpWy@{AKEcABQHuBF" + }, + "startLocation": { + "latLng": { + "latitude": 51.532415799999995, + "longitude": -0.1257203 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.533788099999995, + "longitude": -0.1253389 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Pancras Sq" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 86, + "staticDuration": "76s", + "polyline": { + "encodedPolyline": "eepyHjnWOHeAEm@G" + }, + "startLocation": { + "latLng": { + "latitude": 51.533788099999995, + "longitude": -0.1253389 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Continue onto Pancras Sq" + }, + "localizedValues": { + "distance": { + "text": "86 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 55, + "staticDuration": "47s", + "polyline": { + "encodedPolyline": "iipyHfnWEKIi@Ss@Kq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Goods Way" + }, + "localizedValues": { + "distance": { + "text": "55 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 136, + "staticDuration": "110s", + "polyline": { + "encodedPolyline": "yjpyHjiWaAl@Qh@Q|AAf@Gb@KNMJ" + }, + "startLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Granary Square" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 235, + "staticDuration": "187s", + "polyline": { + "encodedPolyline": "copyHhrWIDgCw@oGsB" + }, + "startLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Granary Square turns right and becomes Stable St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "35s", + "polyline": { + "encodedPolyline": "e|pyHbmWY~B" + }, + "startLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "5.9 km" + }, + "duration": { + "text": "29 mins" + }, + "staticDuration": { + "text": "29 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 10, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 11, + "stepEndIndex": 11, + "navigationInstruction": { + "instructions": "Train towards Horsham" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 12, + "stepEndIndex": 21, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 5906, + "duration": "1724s", + "staticDuration": "1724s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDvAqAs@mCAY[w@KCC@AQ?WOiABoCIAE?C??GKA[?IA?LAz@tIj@^?rDd@nF~@~DfAtC`AtD`BbCrArDdCfF~DlDfD`DdEvAlBpEfHzHxMlBzCrAdBzAzAjEpDlC`BvAp@l`@nP|Al@dAx@t@|@n@pAdAtC\\vApBjLb@`Bh@pAn@bA|@|@b@ZrAd@`ALxBKzIC`AI\\Ip@WrA{@`SeOK_@qE[?CDGOi@g@r@y@{AKEcABQHuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.531065, + "longitude": -0.1292176 + }, + "high": { + "latitude": 51.565051399999994, + "longitude": -0.1059604 + } + }, + "travelAdvisory": { + "transitFare": {} + }, + "localizedValues": { + "distance": { + "text": "5.9 km" + }, + "duration": { + "text": "29 mins" + }, + "staticDuration": { + "text": "29 mins" + }, + "transitFare": {} + }, + "routeLabels": [ + "DEFAULT_ROUTE" + ] + }, + { + "legs": [ + { + "distanceMeters": 5579, + "duration": "1701s", + "staticDuration": "1701s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 4, + "staticDuration": "3s", + "polyline": { + "encodedPolyline": "u_vyHjrTEB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "4 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 19, + "staticDuration": "18s", + "polyline": { + "encodedPolyline": "qevyHlgTON" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "19 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 102, + "staticDuration": "85s", + "polyline": { + "encodedPolyline": "afvyH|gTK_@cB_E" + }, + "startLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5652057, + "longitude": -0.1078344 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Wells Terrace" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "qivyHn`T" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "navigationInstruction": { + "instructions": "Take entrance " + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 129, + "staticDuration": "60s", + "polyline": { + "encodedPolyline": "qivyHn`TpBeI" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 4067, + "staticDuration": "480s", + "polyline": { + "encodedPolyline": "_fvyHhvS@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aC" + }, + "startLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "navigationInstruction": { + "instructions": "Subway towards Northfields" + }, + "localizedValues": { + "distance": { + "text": "4.1 km" + }, + "staticDuration": { + "text": "8 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "King's Cross St. Pancras", + "location": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + } + }, + "arrivalTime": "2024-03-04T09:16:00Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + } + }, + "departureTime": "2024-03-04T09:08:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:16 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:08 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Northfields", + "headway": "180s", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Piccadilly Line", + "uri": "https://tfl.gov.uk/modes/tube/", + "color": "#10069f", + "nameShort": "Piccadilly", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Subway" + }, + "type": "SUBWAY", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-underground.png" + } + }, + "stopCount": 5 + }, + "travelMode": "TRANSIT" + }, + { + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "65s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "40s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "0s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 258, + "staticDuration": "20s", + "polyline": { + "encodedPolyline": "euoyHx~VeKxK" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5331751, + "longitude": -0.1249015 + } + }, + "navigationInstruction": { + "instructions": "Take exit King's Cross St. Pancras Underground Station" + }, + "localizedValues": { + "distance": { + "text": "0.3 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 1, + "staticDuration": "1s", + "polyline": { + "encodedPolyline": "q`pyHdmW?@" + }, + "startLocation": { + "latLng": { + "latitude": 51.533046299999995, + "longitude": -0.12514799999999998 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 5, + "staticDuration": "4s", + "polyline": { + "encodedPolyline": "q`pyHfmW?N" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head west" + }, + "localizedValues": { + "distance": { + "text": "5 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 169, + "staticDuration": "150s", + "polyline": { + "encodedPolyline": "q`pyHvmWQBKFuBFOHeAEm@G" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Pancras Sq" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 55, + "staticDuration": "47s", + "polyline": { + "encodedPolyline": "iipyHfnWEKIi@Ss@Kq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Goods Way" + }, + "localizedValues": { + "distance": { + "text": "55 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 136, + "staticDuration": "110s", + "polyline": { + "encodedPolyline": "yjpyHjiWaAl@Qh@Q|AAf@Gb@KNMJ" + }, + "startLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Granary Square" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 235, + "staticDuration": "187s", + "polyline": { + "encodedPolyline": "copyHhrWIDgCw@oGsB" + }, + "startLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Granary Square turns right and becomes Stable St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "35s", + "polyline": { + "encodedPolyline": "e|pyHbmWY~B" + }, + "startLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "28 mins" + }, + "staticDuration": { + "text": "28 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 5, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 6, + "stepEndIndex": 6, + "navigationInstruction": { + "instructions": "Subway towards Northfields" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 7, + "stepEndIndex": 22, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 5579, + "duration": "1711s", + "staticDuration": "1711s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.531226999999994, + "longitude": -0.127133 + }, + "high": { + "latitude": 51.565208, + "longitude": -0.1059972 + } + }, + "travelAdvisory": { + "transitFare": { + "currencyCode": "GBP", + "units": "3", + "nanos": 400000000 + } + }, + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "29 mins" + }, + "staticDuration": { + "text": "29 mins" + }, + "transitFare": { + "text": "£3.40" + } + }, + "routeLabels": [ + "DEFAULT_ROUTE_ALTERNATE" + ] + }, + { + "legs": [ + { + "distanceMeters": 5579, + "duration": "1701s", + "staticDuration": "1701s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 4, + "staticDuration": "3s", + "polyline": { + "encodedPolyline": "u_vyHjrTEB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "4 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 19, + "staticDuration": "18s", + "polyline": { + "encodedPolyline": "qevyHlgTON" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "19 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 102, + "staticDuration": "85s", + "polyline": { + "encodedPolyline": "afvyH|gTK_@cB_E" + }, + "startLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5652057, + "longitude": -0.1078344 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Wells Terrace" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "qivyHn`T" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "navigationInstruction": { + "instructions": "Take entrance " + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 129, + "staticDuration": "60s", + "polyline": { + "encodedPolyline": "qivyHn`TpBeI" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 4067, + "staticDuration": "480s", + "polyline": { + "encodedPolyline": "_fvyHhvS@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aC" + }, + "startLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "navigationInstruction": { + "instructions": "Subway towards Heathrow Terminal 5" + }, + "localizedValues": { + "distance": { + "text": "4.1 km" + }, + "staticDuration": { + "text": "8 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "King's Cross St. Pancras", + "location": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + } + }, + "arrivalTime": "2024-03-04T09:18:00Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + } + }, + "departureTime": "2024-03-04T09:10:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:18 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:10 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Heathrow Terminal 5", + "headway": "180s", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Piccadilly Line", + "uri": "https://tfl.gov.uk/modes/tube/", + "color": "#10069f", + "nameShort": "Piccadilly", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Subway" + }, + "type": "SUBWAY", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-underground.png" + } + }, + "stopCount": 5 + }, + "travelMode": "TRANSIT" + }, + { + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "65s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "40s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "0s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 258, + "staticDuration": "20s", + "polyline": { + "encodedPolyline": "euoyHx~VeKxK" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5331751, + "longitude": -0.1249015 + } + }, + "navigationInstruction": { + "instructions": "Take exit King's Cross St. Pancras Underground Station" + }, + "localizedValues": { + "distance": { + "text": "0.3 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 1, + "staticDuration": "1s", + "polyline": { + "encodedPolyline": "q`pyHdmW?@" + }, + "startLocation": { + "latLng": { + "latitude": 51.533046299999995, + "longitude": -0.12514799999999998 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 5, + "staticDuration": "4s", + "polyline": { + "encodedPolyline": "q`pyHfmW?N" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head west" + }, + "localizedValues": { + "distance": { + "text": "5 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 169, + "staticDuration": "150s", + "polyline": { + "encodedPolyline": "q`pyHvmWQBKFuBFOHeAEm@G" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Pancras Sq" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 55, + "staticDuration": "47s", + "polyline": { + "encodedPolyline": "iipyHfnWEKIi@Ss@Kq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Goods Way" + }, + "localizedValues": { + "distance": { + "text": "55 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 136, + "staticDuration": "110s", + "polyline": { + "encodedPolyline": "yjpyHjiWaAl@Qh@Q|AAf@Gb@KNMJ" + }, + "startLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Granary Square" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 235, + "staticDuration": "187s", + "polyline": { + "encodedPolyline": "copyHhrWIDgCw@oGsB" + }, + "startLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Granary Square turns right and becomes Stable St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "35s", + "polyline": { + "encodedPolyline": "e|pyHbmWY~B" + }, + "startLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "28 mins" + }, + "staticDuration": { + "text": "28 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 5, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 6, + "stepEndIndex": 6, + "navigationInstruction": { + "instructions": "Subway towards Heathrow Terminal 5" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 7, + "stepEndIndex": 22, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 5579, + "duration": "1711s", + "staticDuration": "1711s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.531226999999994, + "longitude": -0.127133 + }, + "high": { + "latitude": 51.565208, + "longitude": -0.1059972 + } + }, + "travelAdvisory": { + "transitFare": { + "currencyCode": "GBP", + "units": "3", + "nanos": 400000000 + } + }, + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "29 mins" + }, + "staticDuration": { + "text": "29 mins" + }, + "transitFare": { + "text": "£3.40" + } + }, + "routeLabels": [ + "DEFAULT_ROUTE_ALTERNATE" + ] + }, + { + "legs": [ + { + "distanceMeters": 4387, + "duration": "1904s", + "staticDuration": "1904s", + "polyline": { + "encodedPolyline": "u_vyHjrTjB{A~BqBaBkGCu@J_@DA@[hBT?EAR^NdBfBrHlGf@j@t@bBp@|ANPb@LjBC^P\\ZPXvAzFd@dB~@hE`BrGpAvCj@|A@f@\\~ANd@rAVdDHtD@lOBlD?d@C?PLFPONCbPPXGx@ALDbO{AJGx@GDBvHs@vHy@rQcB`@B@O?C~@J?DA\\@?AnG@rRA`FB?V??HDABj@M@?PW?Cl@[hBy@nJWpByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 143, + "staticDuration": "114s", + "polyline": { + "encodedPolyline": "u_vyHjrTjB{A~BqB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5624549, + "longitude": -0.10959139999999999 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head southeast on Pooles Park toward Carville St" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 148, + "staticDuration": "131s", + "polyline": { + "encodedPolyline": "ixuyH|kTaBkGCu@J_@DA@[" + }, + "startLocation": { + "latLng": { + "latitude": 51.5624549, + "longitude": -0.10959139999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.562860099999995, + "longitude": -0.1076651 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Seven Sisters Rd/A503" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 60, + "staticDuration": "62s", + "polyline": { + "encodedPolyline": "{zuyH|_ThBT" + }, + "startLocation": { + "latLng": { + "latitude": 51.562860099999995, + "longitude": -0.1076651 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5623285, + "longitude": -0.10777719999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Isledon Rd/A503\nDestination will be on the left" + }, + "localizedValues": { + "distance": { + "text": "60 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 3139, + "staticDuration": "840s", + "polyline": { + "encodedPolyline": "qwuyHl`TAR^NdBfBrHlGf@j@t@bBp@|ANPb@LjBC^P\\ZPXvAzFd@dB~@hE`BrGpAvCj@|A@f@\\~ANd@rAVdDHtD@lOBlD?d@C?PLFPONCbPPXGx@ALDbO{AJGx@GDBvHs@vHy@rQcB`@B@O" + }, + "startLocation": { + "latLng": { + "latitude": 51.562332, + "longitude": -0.10775499999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.537340699999994, + "longitude": -0.11639790000000001 + } + }, + "navigationInstruction": { + "instructions": "Bus towards Kings Cross" + }, + "localizedValues": { + "distance": { + "text": "3.1 km" + }, + "staticDuration": { + "text": "14 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "Caledonian Road / Copenhagen Street (Stop Q)", + "location": { + "latLng": { + "latitude": 51.537340699999994, + "longitude": -0.11639790000000001 + } + } + }, + "arrivalTime": "2024-03-04T09:24:00Z", + "departureStop": { + "name": "Isledon Road (Stop W)", + "location": { + "latLng": { + "latitude": 51.562332, + "longitude": -0.10775499999999999 + } + } + }, + "departureTime": "2024-03-04T09:10:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:24 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:10 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Kings Cross", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Kings Cross - Lower Edmonton", + "uri": "https://tfl.gov.uk/", + "color": "#ce312d", + "nameShort": "259", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Bus" + }, + "type": "BUS", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/bus2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-bus.png" + } + }, + "stopCount": 12 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 45, + "staticDuration": "34s", + "polyline": { + "encodedPolyline": "k{pyHjvU~@J?D" + }, + "startLocation": { + "latLng": { + "latitude": 51.537342599999995, + "longitude": -0.11638190000000001 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.537024599999995, + "longitude": -0.1164663 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head south on Caledonian Rd/A5203 toward Copenhagen St" + }, + "localizedValues": { + "distance": { + "text": "45 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 407, + "staticDuration": "346s", + "polyline": { + "encodedPolyline": "kypyH|vUA\\@?AnG@rRA`FB?" + }, + "startLocation": { + "latLng": { + "latitude": 51.537024599999995, + "longitude": -0.1164663 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5370054, + "longitude": -0.12224760000000001 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Copenhagen St/B514" + }, + "localizedValues": { + "distance": { + "text": "0.4 km" + }, + "staticDuration": { + "text": "6 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 244, + "staticDuration": "209s", + "polyline": { + "encodedPolyline": "iypyH`{VV??HDABj@M@?PW?Cl@[hBy@nJWpB" + }, + "startLocation": { + "latLng": { + "latitude": 51.5370054, + "longitude": -0.12224760000000001 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Continue onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "4.4 km" + }, + "duration": { + "text": "32 mins" + }, + "staticDuration": { + "text": "32 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 2, + "navigationInstruction": { + "instructions": "Walk to Isledon Road (Stop W)" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 3, + "stepEndIndex": 3, + "navigationInstruction": { + "instructions": "Bus towards Kings Cross" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 4, + "stepEndIndex": 8, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 4387, + "duration": "1905s", + "staticDuration": "1905s", + "polyline": { + "encodedPolyline": "u_vyHjrTjB{A~BqBaBkGCu@J_@DA@[hBT?EAR^NdBfBrHlGf@j@t@bBp@|ANPb@LjBC^P\\ZPXvAzFd@dB~@hE`BrGpAvCj@|A@f@\\~ANd@rAVdDHtD@lOBlD?d@C?PLFPONCbPPXGx@ALDbO{AJGx@GDBvHs@vHy@rQcB`@B@O?C~@J?DA\\@?AnG@rRA`FB?V??HDABj@M@?PW?Cl@[hBy@nJWpByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.5368427, + "longitude": -0.127133 + }, + "high": { + "latitude": 51.563629, + "longitude": -0.1076651 + } + }, + "travelAdvisory": { + "transitFare": { + "currencyCode": "GBP", + "units": "1", + "nanos": 750000000 + } + }, + "localizedValues": { + "distance": { + "text": "4.4 km" + }, + "duration": { + "text": "32 mins" + }, + "staticDuration": { + "text": "32 mins" + }, + "transitFare": { + "text": "£1.75" + } + }, + "routeLabels": [ + "DEFAULT_ROUTE_ALTERNATE" + ] + }, + { + "legs": [ + { + "distanceMeters": 5579, + "duration": "1641s", + "staticDuration": "1641s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 4, + "staticDuration": "3s", + "polyline": { + "encodedPolyline": "u_vyHjrTEB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "4 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 19, + "staticDuration": "18s", + "polyline": { + "encodedPolyline": "qevyHlgTON" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "19 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 102, + "staticDuration": "85s", + "polyline": { + "encodedPolyline": "afvyH|gTK_@cB_E" + }, + "startLocation": { + "latLng": { + "latitude": 51.564651900000008, + "longitude": -0.1089478 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5652057, + "longitude": -0.1078344 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Wells Terrace" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "qivyHn`T" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "navigationInstruction": { + "instructions": "Take entrance " + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 129, + "staticDuration": "60s", + "polyline": { + "encodedPolyline": "qivyHn`TpBeI" + }, + "startLocation": { + "latLng": { + "latitude": 51.565208, + "longitude": -0.107765 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 4067, + "staticDuration": "420s", + "polyline": { + "encodedPolyline": "_fvyHhvS@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aC" + }, + "startLocation": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "navigationInstruction": { + "instructions": "Subway towards Rayners Lane" + }, + "localizedValues": { + "distance": { + "text": "4.1 km" + }, + "staticDuration": { + "text": "7 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "King's Cross St. Pancras", + "location": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + } + }, + "arrivalTime": "2024-03-04T09:20:00Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.564636099999994, + "longitude": -0.1061274 + } + } + }, + "departureTime": "2024-03-04T09:13:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:20 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:13 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "Rayners Lane", + "headway": "180s", + "transitLine": { + "agencies": [ + { + "name": "Transport for London", + "uri": "https://tfl.gov.uk/modes/tube/" + } + ], + "name": "Piccadilly Line", + "uri": "https://tfl.gov.uk/modes/tube/", + "color": "#10069f", + "nameShort": "Piccadilly", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Subway" + }, + "type": "SUBWAY", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-london-underground.png" + } + }, + "stopCount": 5 + }, + "travelMode": "TRANSIT" + }, + { + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "65s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "30s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "40s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "staticDuration": "0s", + "polyline": { + "encodedPolyline": "euoyHx~V" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 258, + "staticDuration": "20s", + "polyline": { + "encodedPolyline": "euoyHx~VeKxK" + }, + "startLocation": { + "latLng": { + "latitude": 51.531226999999994, + "longitude": -0.122852 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5331751, + "longitude": -0.1249015 + } + }, + "navigationInstruction": { + "instructions": "Take exit King's Cross St. Pancras Underground Station" + }, + "localizedValues": { + "distance": { + "text": "0.3 km" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 1, + "staticDuration": "1s", + "polyline": { + "encodedPolyline": "q`pyHdmW?@" + }, + "startLocation": { + "latLng": { + "latitude": 51.533046299999995, + "longitude": -0.12514799999999998 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "localizedValues": { + "distance": { + "text": "1 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 5, + "staticDuration": "4s", + "polyline": { + "encodedPolyline": "q`pyHfmW?N" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330465, + "longitude": -0.125162 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head west" + }, + "localizedValues": { + "distance": { + "text": "5 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 169, + "staticDuration": "150s", + "polyline": { + "encodedPolyline": "q`pyHvmWQBKFuBFOHeAEm@G" + }, + "startLocation": { + "latLng": { + "latitude": 51.5330452, + "longitude": -0.1252352 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Pancras Sq" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 55, + "staticDuration": "47s", + "polyline": { + "encodedPolyline": "iipyHfnWEKIi@Ss@Kq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.534445899999994, + "longitude": -0.1253212 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Goods Way" + }, + "localizedValues": { + "distance": { + "text": "55 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 136, + "staticDuration": "110s", + "polyline": { + "encodedPolyline": "yjpyHjiWaAl@Qh@Q|AAf@Gb@KNMJ" + }, + "startLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Granary Square" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 235, + "staticDuration": "187s", + "polyline": { + "encodedPolyline": "copyHhrWIDgCw@oGsB" + }, + "startLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Granary Square turns right and becomes Stable St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "35s", + "polyline": { + "encodedPolyline": "e|pyHbmWY~B" + }, + "startLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "27 mins" + }, + "staticDuration": { + "text": "27 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 5, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 6, + "stepEndIndex": 6, + "navigationInstruction": { + "instructions": "Subway towards Rayners Lane" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 7, + "stepEndIndex": 22, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 5579, + "duration": "1651s", + "staticDuration": "1651s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDONK_@cB_E?MpBeI@YlIt@rCRpFj@pATpJdClH|GxMjNpDfEfPlS~B|CbBrBjBpBtEfEdH~FfBrAvBnAzRhItAf@dDv@|D`@fI`@hOf@f^r@@aCeKxKXp@?@?NQBKFuBFOHeAEm@GEKIi@Ss@Kq@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.531226999999994, + "longitude": -0.127133 + }, + "high": { + "latitude": 51.565208, + "longitude": -0.1059972 + } + }, + "travelAdvisory": { + "transitFare": { + "currencyCode": "GBP", + "units": "3", + "nanos": 400000000 + } + }, + "localizedValues": { + "distance": { + "text": "5.6 km" + }, + "duration": { + "text": "28 mins" + }, + "staticDuration": { + "text": "28 mins" + }, + "transitFare": { + "text": "£3.40" + } + }, + "routeLabels": [ + "DEFAULT_ROUTE_ALTERNATE" + ] + }, + { + "legs": [ + { + "distanceMeters": 5409, + "duration": "1607s", + "staticDuration": "1607s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDvAqAs@mCAY[w@KCC@AQ?WOiABoCIAE?C??GKA[?IA?L?N|EVfA@pC\\fEz@fHdB`EpAdEbBzBpAhFtDzEzDjChClCzCxBvCdFdI`DtF`DdFrBfCvB|BtH`Hn@j@fAp@hPbHhLzEtCn@bDh@|BTfa@rAhBDh@JxGN?lAdBtBHGJ`@MPy@r@[SyIcAg@@a@VI_@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "steps": [ + { + "distanceMeters": 4, + "staticDuration": "3s", + "polyline": { + "encodedPolyline": "u_vyHjrTEB" + }, + "startLocation": { + "latLng": { + "latitude": 51.563629, + "longitude": -0.1106161 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head northwest on Pooles Park" + }, + "localizedValues": { + "distance": { + "text": "4 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 158, + "staticDuration": "133s", + "polyline": { + "encodedPolyline": "{_vyHnrTMHQK}AwDw@gD" + }, + "startLocation": { + "latLng": { + "latitude": 51.563659300000005, + "longitude": -0.1106426 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "navigationInstruction": { + "maneuver": "TURN_SLIGHT_RIGHT", + "instructions": "Slight right onto Biggerstaff St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 56, + "staticDuration": "45s", + "polyline": { + "encodedPolyline": "qevyHlgTvAqA" + }, + "startLocation": { + "latLng": { + "latitude": 51.564572399999996, + "longitude": -0.10886889999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564134700000004, + "longitude": -0.1084646 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Fonthill Rd" + }, + "localizedValues": { + "distance": { + "text": "56 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 64, + "staticDuration": "53s", + "polyline": { + "encodedPolyline": "ybvyHzdTs@mC" + }, + "startLocation": { + "latLng": { + "latitude": 51.564134700000004, + "longitude": -0.1084646 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5643874, + "longitude": -0.107747 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Goodwin St" + }, + "localizedValues": { + "distance": { + "text": "64 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "32s", + "polyline": { + "encodedPolyline": "mdvyHl`TAY[w@KCC@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5643874, + "longitude": -0.107747 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564624699999996, + "longitude": -0.10733459999999999 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Continue onto City N Pl" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 6, + "staticDuration": "5s", + "polyline": { + "encodedPolyline": "{evyHx}SAQ" + }, + "startLocation": { + "latLng": { + "latitude": 51.564624699999996, + "longitude": -0.10733459999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564629, + "longitude": -0.1072443 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right" + }, + "localizedValues": { + "distance": { + "text": "6 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 91, + "staticDuration": "72s", + "polyline": { + "encodedPolyline": "}evyHf}S?WOiABoCIA" + }, + "startLocation": { + "latLng": { + "latitude": 51.564629, + "longitude": -0.1072443 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564740199999996, + "longitude": -0.106024 + } + }, + "localizedValues": { + "distance": { + "text": "91 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 3, + "staticDuration": "4s", + "polyline": { + "encodedPolyline": "sfvyHruSE?" + }, + "startLocation": { + "latLng": { + "latitude": 51.564740199999996, + "longitude": -0.106024 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5647659, + "longitude": -0.1060227 + } + }, + "localizedValues": { + "distance": { + "text": "3 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 13, + "staticDuration": "9s", + "polyline": { + "encodedPolyline": "yfvyHruSC??GKA" + }, + "startLocation": { + "latLng": { + "latitude": 51.5647659, + "longitude": -0.1060227 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564848800000007, + "longitude": -0.1059714 + } + }, + "localizedValues": { + "distance": { + "text": "13 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 16, + "staticDuration": "21s", + "polyline": { + "encodedPolyline": "igvyHhuS[?" + }, + "startLocation": { + "latLng": { + "latitude": 51.564848800000007, + "longitude": -0.1059714 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.564994399999996, + "longitude": -0.1059656 + } + }, + "localizedValues": { + "distance": { + "text": "16 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 10, + "staticDuration": "8s", + "polyline": { + "encodedPolyline": "ehvyHhuSIA?L" + }, + "startLocation": { + "latLng": { + "latitude": 51.564994399999996, + "longitude": -0.1059656 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5650425, + "longitude": -0.1060251 + } + }, + "localizedValues": { + "distance": { + "text": "10 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 3934, + "staticDuration": "360s", + "polyline": { + "encodedPolyline": "ohvyHtuS?N|EVfA@pC\\fEz@fHdB`EpAdEbBzBpAhFtDzEzDjChClCzCxBvCdFdI`DtF`DdFrBfCvB|BtH`Hn@j@fAp@hPbHhLzEtCn@bDh@|BTfa@rAhBDh@JxGN?lA" + }, + "startLocation": { + "latLng": { + "latitude": 51.5650373, + "longitude": -0.10603250000000002 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5326638, + "longitude": -0.123937 + } + }, + "navigationInstruction": { + "instructions": "Train towards London Kings Cross" + }, + "localizedValues": { + "distance": { + "text": "3.9 km" + }, + "staticDuration": { + "text": "6 mins" + } + }, + "transitDetails": { + "stopDetails": { + "arrivalStop": { + "name": "King’s Cross", + "location": { + "latLng": { + "latitude": 51.5326638, + "longitude": -0.123937 + } + } + }, + "arrivalTime": "2024-03-04T09:21:00Z", + "departureStop": { + "name": "Finsbury Park", + "location": { + "latLng": { + "latitude": 51.5650373, + "longitude": -0.10603250000000002 + } + } + }, + "departureTime": "2024-03-04T09:15:00Z" + }, + "localizedValues": { + "arrivalTime": { + "time": { + "text": "9:21 AM" + }, + "timeZone": "Europe/London" + }, + "departureTime": { + "time": { + "text": "9:15 AM" + }, + "timeZone": "Europe/London" + } + }, + "headsign": "London Kings Cross", + "transitLine": { + "agencies": [ + { + "name": "Great Northern", + "phoneNumber": "+44 345 026 4700", + "uri": "https://www.greatnorthernrail.com/" + } + ], + "name": "Cambridge - London Kings Cross", + "color": "#30104d", + "nameShort": "Great Northern", + "textColor": "#ffffff", + "vehicle": { + "name": { + "text": "Train" + }, + "type": "HEAVY_RAIL", + "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/rail2.png", + "localIconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/uk-rail.png" + } + }, + "stopCount": 2 + }, + "travelMode": "TRANSIT" + }, + { + "distanceMeters": 70, + "staticDuration": "71s", + "polyline": { + "encodedPolyline": "c~oyHreWdBtB" + }, + "startLocation": { + "latLng": { + "latitude": 51.5326638, + "longitude": -0.123937 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5321468, + "longitude": -0.12452650000000001 + } + }, + "navigationInstruction": { + "instructions": "Take exit London King's Cross Rail Station" + }, + "localizedValues": { + "distance": { + "text": "70 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 13, + "staticDuration": "11s", + "polyline": { + "encodedPolyline": "szoyH`iWJ`@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5320979, + "longitude": -0.12449159999999998 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5320397, + "longitude": -0.12466029999999999 + } + }, + "navigationInstruction": { + "maneuver": "DEPART", + "instructions": "Head southwest" + }, + "localizedValues": { + "distance": { + "text": "13 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 46, + "staticDuration": "38s", + "polyline": { + "encodedPolyline": "gzoyHbjWMPy@r@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5320397, + "longitude": -0.12466029999999999 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5323953, + "longitude": -0.1250065 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward King's Blvd" + }, + "localizedValues": { + "distance": { + "text": "46 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 261, + "staticDuration": "232s", + "polyline": { + "encodedPolyline": "o|oyHhlW[SyIcAg@@a@V" + }, + "startLocation": { + "latLng": { + "latitude": 51.5323953, + "longitude": -0.1250065 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.534641799999996, + "longitude": -0.1247027 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto King's Blvd" + }, + "localizedValues": { + "distance": { + "text": "0.3 km" + }, + "staticDuration": { + "text": "4 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 12, + "staticDuration": "10s", + "polyline": { + "encodedPolyline": "ojpyHjjWI_@" + }, + "startLocation": { + "latLng": { + "latitude": 51.534641799999996, + "longitude": -0.1247027 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right onto Goods Way" + }, + "localizedValues": { + "distance": { + "text": "12 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 136, + "staticDuration": "110s", + "polyline": { + "encodedPolyline": "yjpyHjiWaAl@Qh@Q|AAf@Gb@KNMJ" + }, + "startLocation": { + "latLng": { + "latitude": 51.5346901, + "longitude": -0.1245404 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Granary Square" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 235, + "staticDuration": "187s", + "polyline": { + "encodedPolyline": "copyHhrWIDgCw@oGsB" + }, + "startLocation": { + "latLng": { + "latitude": 51.535384699999994, + "longitude": -0.1259711 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "navigationInstruction": { + "maneuver": "NAME_CHANGE", + "instructions": "Granary Square turns right and becomes Stable St" + }, + "localizedValues": { + "distance": { + "text": "0.2 km" + }, + "staticDuration": { + "text": "3 mins" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 40, + "staticDuration": "35s", + "polyline": { + "encodedPolyline": "e|pyHbmWY~B" + }, + "startLocation": { + "latLng": { + "latitude": 51.5374662, + "longitude": -0.1251395 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Handyside St" + }, + "localizedValues": { + "distance": { + "text": "40 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 62, + "staticDuration": "51s", + "polyline": { + "encodedPolyline": "_}pyHbqWyAq@" + }, + "startLocation": { + "latLng": { + "latitude": 51.5376026, + "longitude": -0.1257767 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "navigationInstruction": { + "maneuver": "TURN_RIGHT", + "instructions": "Turn right toward Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "62 m" + }, + "staticDuration": { + "text": "1 min" + } + }, + "travelMode": "WALK" + }, + { + "distanceMeters": 139, + "staticDuration": "117s", + "polyline": { + "encodedPolyline": "y_qyHpoWi@fEGH[G[tB" + }, + "startLocation": { + "latLng": { + "latitude": 51.538053100000006, + "longitude": -0.1255324 + } + }, + "endLocation": { + "latLng": { + "latitude": 51.538581699999995, + "longitude": -0.127133 + } + }, + "navigationInstruction": { + "maneuver": "TURN_LEFT", + "instructions": "Turn left onto Keskidee Wy" + }, + "localizedValues": { + "distance": { + "text": "0.1 km" + }, + "staticDuration": { + "text": "2 mins" + } + }, + "travelMode": "WALK" + } + ], + "localizedValues": { + "distance": { + "text": "5.4 km" + }, + "duration": { + "text": "27 mins" + }, + "staticDuration": { + "text": "27 mins" + } + }, + "stepsOverview": { + "multiModalSegments": [ + { + "stepStartIndex": 0, + "stepEndIndex": 10, + "navigationInstruction": { + "instructions": "Walk to Finsbury Park" + }, + "travelMode": "WALK" + }, + { + "stepStartIndex": 11, + "stepEndIndex": 11, + "navigationInstruction": { + "instructions": "Train towards London Kings Cross" + }, + "travelMode": "TRANSIT" + }, + { + "stepStartIndex": 12, + "stepEndIndex": 21, + "travelMode": "WALK" + } + ] + } + } + ], + "distanceMeters": 5409, + "duration": "1607s", + "staticDuration": "1607s", + "polyline": { + "encodedPolyline": "u_vyHjrTEBMHQK}AwDw@gDvAqAs@mCAY[w@KCC@AQ?WOiABoCIAE?C??GKA[?IA?L?N|EVfA@pC\\fEz@fHdB`EpAdEbBzBpAhFtDzEzDjChClCzCxBvCdFdI`DtF`DdFrBfCvB|BtH`Hn@j@fAp@hPbHhLzEtCn@bDh@|BTfa@rAhBDh@JxGN?lAdBtBHGJ`@MPy@r@[SyIcAg@@a@VI_@aAl@Qh@Q|AAf@Gb@KNMJIDgCw@oGsBY~ByAq@i@fEGH[G[tB" + }, + "viewport": { + "low": { + "latitude": 51.5320397, + "longitude": -0.127133 + }, + "high": { + "latitude": 51.5650425, + "longitude": -0.1059604 + } + }, + "travelAdvisory": { + "transitFare": {} + }, + "localizedValues": { + "distance": { + "text": "5.4 km" + }, + "duration": { + "text": "27 mins" + }, + "staticDuration": { + "text": "27 mins" + }, + "transitFare": {} + }, + "routeLabels": [ + "DEFAULT_ROUTE_ALTERNATE" + ] + } + ] +} diff --git a/code/routing.py b/code/routing_distancematrix.py similarity index 84% rename from code/routing.py rename to code/routing_distancematrix.py index 2a4ce35..acc52d2 100644 --- a/code/routing.py +++ b/code/routing_distancematrix.py @@ -18,3 +18,6 @@ print(r.status_code) print(r.json()) +with open('code/json/routing_distancematrix.json', 'w') as f: + f.write(r.text) + diff --git a/code/routing_routing.py b/code/routing_routing.py new file mode 100644 index 0000000..c74e503 --- /dev/null +++ b/code/routing_routing.py @@ -0,0 +1,60 @@ +import requests +from utils import nextMonday + +API_KEY = 'AIzaSyBoBHzeQFgR7O-NlNsuHXQcC1B7ccEHpl8' +url = "https://routes.googleapis.com/directions/v2:computeRoutes" + + +def travel_time(origin_lat:float, origin_lon:float, dest_lat:float, dest_lon:float): + monday9am = nextMonday() + + header = { + "X-Goog-Api-Key": API_KEY, + "Content-Type": "application/json", + "X-Goog-FieldMask": "routes.distanceMeters,routes.duration,routes.staticDuration,routes.legs.stepsOverview", + } + + body = { + "origin":{ + "location":{ + "latLng":{ + "latitude": origin_lat, + "longitude": origin_lon + } + } + }, + "destination":{ + "location":{ + "latLng":{ + "latitude": dest_lat, + "longitude": dest_lon + } + } + }, + "travelMode": "TRANSIT", + # "2023-10-15T15:01:23.045123456Z" + "departureTime": monday9am.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), + "computeAlternativeRoutes": False, + # "routeModifiers": { + # "avoidTolls": false, + # "avoidHighways": false, + # "avoidFerries": false + # }, + "languageCode": "en-US", + "units": "METRIC" + } + + r = requests.post(url, json=body, headers=header) + if r.status_code == 200: + return r.json() + + raise Exception(r.json()) + +if __name__ == "__main__": + origin = 51.5635664310333, -0.1107173751570373 # home + dest = 51.50475678313417, 0.04915321000190009 # london city airport + d = travel_time(origin[0], origin[1], dest[0], dest[1]) + import json + with open('code/json/routing_routeapi2.json', 'w') as f: + json.dump(d, f) + diff --git a/code/utils.py b/code/utils.py index 8d605b8..8140720 100644 --- a/code/utils.py +++ b/code/utils.py @@ -1,9 +1,17 @@ from datetime import datetime, timedelta, timezone + def nextMonday(): + """ + I think this function doesnt work when the day is monday itself. + + Returns: + _type_: _description_ + """ now = datetime.now(timezone.utc) days_until_monday = (0 - now.weekday() + 7) % 7 monday = now + timedelta(days=days_until_monday) monday_9am = monday.replace(hour=9, minute=0, second=0, microsecond=0, tzinfo=timezone.utc) return monday_9am -print(nextMonday()) \ No newline at end of file +if __name__ == '__main__': + print(nextMonday())