JAK DOJADE
Descargar el tiempo necesario para ir de un punto de la ciudad a otro. Caso de estudio: Varsovia.
La web (https://jakdojade.pl/) muestra una pantalla estática mientras calcula el camino más rápido.
- La información que recoge el scrapping es de esa pantalla, y no del resultado posterior
- Hemos intentado la función sleep pero no funciona
- Postman parece no solucionar el problema tampoco (AUTH_EMPTY_USER)
- Postman: vemos que algunos parámetros del Header son necesarios, intentamos ver cuales
- Tras recrear los headers copiando los parámetros necesarios, conseguimos un JSON
- No conseguimos automatizarlo, hay un header que cambia dinámicamente ¿puede queen función de las coordenadas?
Código:
import csv, time, scrapy, json from urllib.request import Request, urlopen from bs4 import BeautifulSoup outputpath = 'C:/DWG/jakdojade.csv' with open(outputpath, 'w') as outfile: writer = csv.writer(outfile) latMin = 52.1 latMax = 52.3 lonMin = 20.85 lonMax = 21.15 for counter in range(0,11): lat1 = (latMin + latMax)/2 lon1 = (lonMin + lonMax)/2 lat2 = latMin + counter*(latMax-latMin)/10 lon2 = lonMin + counter*(lonMax-lonMin)/10 url = "https://jakdojade.pl/api/web/v1/routes?alt=0&apv=&aro=1&fc="+str(lat2)+":"+str(lon2)+"&ft=LOCATION_TYPE_COORDINATE&location=43.31676:-1.97569&rc=3®ion_symbol=WARSZAWA&ri=1&rt=false&t=optimal&tc="+str(lat1)+":"+str(lon1)+"&time=07.02.18+16:58&tt=LOCATION_TYPE_COORDINATE" headers = { 'X-jd-timestamp': '1518024097', 'X-jd-param-profile-login':'jda-39b3aa63-842f-4bd4-9e4e-aac814a834ddQi915f1MstaImZf5e45d', 'X-jd-sign':'a2uz-lMLTOctScjZaHjEP8juZZn1JXNikJb5HyeqJERxOX__ZOE800wxpMnD1qYgl9F0MyFyvrQqga5FZH_2dQ', 'X-jd-security-version':'2', 'Referer':'https://jakdojade.pl/warszawa/trasa/z--undefined--do--undefined?tc='+str(lat1)+':'+str(lon1)+'&fc='+str(lat2)+':'+str(lon2)+'&ft=LOCATION_TYPE_COORDINATE&tt=LOCATION_TYPE_COORDINATE&d=07.02.18&h=16:58&aro=1&t=1&rc=3&ri=1&r=0', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' } print(url+"\n\n") print('https://jakdojade.pl/warszawa/trasa/z--undefined--do--undefined?tc='+str(lat1)+':'+str(lon1)+'&fc='+str(lat2)+':'+str(lon2)+'&ft=LOCATION_TYPE_COORDINATE&tt=LOCATION_TYPE_COORDINATE&d=07.02.18&h=16:58&aro=1&t=1&rc=3&ri=1&r=0\n\n') # Get URL response = Request(url, headers=headers) #time.sleep(1) try: pagedata = urlopen(response) html = pagedata.read() myJson = json.loads(html) allRoutes = myJson['routes'] lne = str(lon1)+","+str(lat1)+","+str(lon2)+","+str(lat2) for i in range(0, len(allRoutes)): subRoutes = allRoutes[i]['routeParts'] lne = lne + ";" + subRoutes[0]['routePartStartDepartureTimeSchedule'] + "," + subRoutes[len(subRoutes)-1]['routePartTargetArrivalTimeSchedule'] #print(" start: " + subRoutes[0]['routePartStartDepartureTimeSchedule']) #print(" end: " + subRoutes[len(subRoutes)-1]['routePartTargetArrivalTimeSchedule']) print(lne) writer.writerow([lne]) except Exception as e: print('Error parseando web')
y el archivo JSON
{ "cityName": "Warszawa", "citySymbol": "WARSZAWA", "routes": [ { "routeAlternative": false, "routeRealtimeStatus": "REALTIME_NO_PREDICTION_NO_LOCATION", "routeParts": [ { "routePartType": "WALK", "routePartDistanceMeters": 520, "routeWalk": { "walkShape": [ { "x_lon": 20.90869, "y_lat": 52.28454 }, { "x_lon": 20.907677, "y_lat": 52.284381 }, { "x_lon": 20.90793, "y_lat": 52.283775 }, { "x_lon": 20.90782, "y_lat": 52.283775 }, { "x_lon": 20.907041, "y_lat": 52.283783 }, { "x_lon": 20.906363, "y_lat": 52.283791 }, { "x_lon": 20.905502, "y_lat": 52.283797 }, { "x_lon": 20.905211, "y_lat": 52.2838 }, { "x_lon": 20.905175, "y_lat": 52.2838 }, { "x_lon": 20.905147, "y_lat": 52.2838 }, { "x_lon": 20.904769, "y_lat": 52.283804 }, { "x_lon": 20.90451, "y_lat": 52.283807 }, { "x_lon": 20.904431, "y_lat": 52.283808 }, { "x_lon": 20.904162, "y_lat": 52.283809 }, { "x_lon": 20.904064, "y_lat": 52.283809 }, { "x_lon": 20.90405, "y_lat": 52.283809 }, { "x_lon": 20.903999, "y_lat": 52.28381 }, { "x_lon": 20.903925, "y_lat": 52.28381 }, { "x_lon": 20.903869, "y_lat": 52.283811 }, { "x_lon": 20.903826, "y_lat": 52.283811 }, { "x_lon": 20.903787, "y_lat": 52.283809 }, { "x_lon": 20.903664, "y_lat": 52.283803 }, { "x_lon": 20.903575, "y_lat": 52.283804 }, { "x_lon": 20.903269, "y_lat": 52.283806 }, { "x_lon": 20.902878, "y_lat": 52.283808 }, { "x_lon": 20.902807, "y_lat": 52.283808 }, { "x_lon": 20.902808, "y_lat": 52.283798 }, { "x_lon": 20.902809, "y_lat": 52.283759 }, { "x_lon": 20.902808, "y_lat": 52.283737 }, { "x_lon": 20.902808, "y_lat": 52.283726 }, { "x_lon": 20.902783, "y_lat": 52.283726 }, { "x_lon": 20.902648, "y_lat": 52.283728 }, { "x_lon": 20.90265, "y_lat": 52.28376 } ] }, "routePartStartDepartureTimeSchedule": "2018-02-07T19:35:00.000+0100", "routePartTargetArrivalTimeSchedule": "2018-02-07T19:41:00.000+0100" }, { "routePartType": "PUBLIC_TRANSPORT", "routePartDistanceMeters": 5007, "routeLine": { "line": { "lineId": "ZTM_WARSZAWA-110", "lineName": "110", "lineVehicleType": "VEHICLE_TYPE_BUS" }, "lineHeadingText": "METRO MARYMONT", "transportOperator": { "operatorId": 3, "operatorSymbol": "ZTM_WARSZAWA", "operatorName": "ZTM Warszawa" }, "notMainVariant": false, "departuresPeriodMinutes": 20, "courseId": "0:50", "realtimeStatus": "REALTIME_NO_PREDICTION_NO_LOCATION", "stops": { "startIndex": 1, "endIndex": 10, "stops": [ { "stopPoint": { "stopName": "KSIĘŻYCOWA", "stopPointCode": "603001", "stopPointStreetName": "ARKUSZOWA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.89686, "y_lat": 52.28442 } }, "lineStopDynamicId": "{name:\"KSIEZYCOWA\",lineName:\"110\",coor:\"20.89686:52.28442\",dirCoor:\"20.90265:52.28376\"}", "shape": [ { "x_lon": 20.89687, "y_lat": 52.28444 }, { "x_lon": 20.89857, "y_lat": 52.28412 }, { "x_lon": 20.90023, "y_lat": 52.28387 }, { "x_lon": 20.90125, "y_lat": 52.28379 }, { "x_lon": 20.90265, "y_lat": 52.28377 } ], "onDemand": true, "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "CHABROWA", "stopPointCode": "602901", "stopPointStreetName": "ARKUSZOWA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.90265, "y_lat": 52.28376 } }, "departureTimeSchedule": "2018-02-07T19:41:00.000+0100", "lineStopDynamicId": "{name:\"CHABROWA\",lineName:\"110\",coor:\"20.90265:52.28376\",dirCoor:\"20.91546:52.28307\"}", "shape": [ { "x_lon": 20.90265, "y_lat": 52.28377 }, { "x_lon": 20.91066, "y_lat": 52.28366 }, { "x_lon": 20.91212, "y_lat": 52.28352 }, { "x_lon": 20.91547, "y_lat": 52.28309 } ], "onDemand": true, "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "TYTUŁOWA", "stopPointCode": "602801", "stopPointStreetName": "WÓLCZYŃSKA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.91546, "y_lat": 52.28307 } }, "departureTimeSchedule": "2018-02-07T19:42:00.000+0100", "lineStopDynamicId": "{name:\"TYTULOWA\",lineName:\"110\",coor:\"20.91546:52.28307\",dirCoor:\"20.91988:52.28220\"}", "shape": [ { "x_lon": 20.91547, "y_lat": 52.28309 }, { "x_lon": 20.91626, "y_lat": 52.28294 }, { "x_lon": 20.91989, "y_lat": 52.28222 } ], "onDemand": true, "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "POPIELA", "stopPointCode": "602701", "stopPointStreetName": "WÓLCZYŃSKA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.91988, "y_lat": 52.2822 } }, "departureTimeSchedule": "2018-02-07T19:43:00.000+0100", "lineStopDynamicId": "{name:\"POPIELA\",lineName:\"110\",coor:\"20.91988:52.28220\",dirCoor:\"20.92512:52.28094\"}", "shape": [ { "x_lon": 20.91989, "y_lat": 52.28222 }, { "x_lon": 20.92512, "y_lat": 52.28095 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "BOGUSŁAWSKIEGO", "stopPointCode": "602601", "stopPointStreetName": "WÓLCZYŃSKA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.92512, "y_lat": 52.28094 } }, "departureTimeSchedule": "2018-02-07T19:44:00.000+0100", "lineStopDynamicId": "{name:\"BOGUSLAWSKIEGO\",lineName:\"110\",coor:\"20.92512:52.28094\",dirCoor:\"20.92860:52.27997\"}", "shape": [ { "x_lon": 20.92512, "y_lat": 52.28095 }, { "x_lon": 20.92777, "y_lat": 52.28025 }, { "x_lon": 20.92861, "y_lat": 52.27998 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "CM. WAWRZYSZEWSKI", "stopPointCode": "602501", "stopPointStreetName": "WÓLCZYŃSKA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.9286, "y_lat": 52.27997 } }, "departureTimeSchedule": "2018-02-07T19:45:00.000+0100", "lineStopDynamicId": "{name:\"CMENTARZ WAWRZYSZEWSKI\",lineName:\"110\",coor:\"20.92860:52.27997\",dirCoor:\"20.93396:52.27851\"}", "shape": [ { "x_lon": 20.92861, "y_lat": 52.27998 }, { "x_lon": 20.93161, "y_lat": 52.27895 }, { "x_lon": 20.93216, "y_lat": 52.27879 }, { "x_lon": 20.93398, "y_lat": 52.27855 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "ASPEKT", "stopPointCode": "602401", "stopPointStreetName": "WÓLCZYŃSKA", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.93396, "y_lat": 52.27851 } }, "departureTimeSchedule": "2018-02-07T19:46:00.000+0100", "lineStopDynamicId": "{name:\"ASPEKT\",lineName:\"110\",coor:\"20.93396:52.27851\",dirCoor:\"20.94023:52.27777\"}", "shape": [ { "x_lon": 20.93398, "y_lat": 52.27855 }, { "x_lon": 20.94024, "y_lat": 52.27782 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "PRZYBYSZEWSKIEGO", "stopPointCode": "602201", "stopPointStreetName": "ŻEROMSKIEGO", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.94023, "y_lat": 52.27777 } }, "departureTimeSchedule": "2018-02-07T19:48:00.000+0100", "lineStopDynamicId": "{name:\"PRZYBYSZEWSKIEGO\",lineName:\"110\",coor:\"20.94023:52.27777\",dirCoor:\"20.94828:52.27683\"}", "shape": [ { "x_lon": 20.94024, "y_lat": 52.27782 }, { "x_lon": 20.94829, "y_lat": 52.2769 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "BIELANY-RATUSZ", "stopPointCode": "602101", "stopPointStreetName": "ŻEROMSKIEGO", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.94828, "y_lat": 52.27683 } }, "departureTimeSchedule": "2018-02-07T19:49:00.000+0100", "lineStopDynamicId": "{name:\"BIELANY RATUSZ\",lineName:\"110\",coor:\"20.94828:52.27683\",dirCoor:\"20.95307:52.27629\"}", "shape": [ { "x_lon": 20.94829, "y_lat": 52.2769 }, { "x_lon": 20.9531, "y_lat": 52.27637 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "PERZYŃSKIEGO", "stopPointCode": "602001", "stopPointStreetName": "ŻEROMSKIEGO", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.95307, "y_lat": 52.27629 } }, "departureTimeSchedule": "2018-02-07T19:50:00.000+0100", "lineStopDynamicId": "{name:\"PERZYNSKIEGO\",lineName:\"110\",coor:\"20.95307:52.27629\",dirCoor:\"20.96233:52.27532\"}", "shape": [ { "x_lon": 20.9531, "y_lat": 52.27637 }, { "x_lon": 20.95672, "y_lat": 52.27601 }, { "x_lon": 20.96234, "y_lat": 52.27535 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "ŻEROMSKIEGO", "stopPointCode": "600603", "stopPointStreetName": "ŻEROMSKIEGO", "stopPointCodeInGroup": "03", "stopPointCoordinate": { "x_lon": 20.96233, "y_lat": 52.27532 } }, "departureTimeSchedule": "2018-02-07T19:52:00.000+0100", "arrivalTimeSchedule": "2018-02-07T19:52:00.000+0100", "lineStopDynamicId": "{name:\"ZEROMSKIEGO\",lineName:\"110\",coor:\"20.96233:52.27532\",dirCoor:\"20.96681:52.27323\"}", "shape": [ { "x_lon": 20.96234, "y_lat": 52.27535 }, { "x_lon": 20.9638, "y_lat": 52.27519 }, { "x_lon": 20.96435, "y_lat": 52.27468 }, { "x_lon": 20.96498, "y_lat": 52.27421 }, { "x_lon": 20.96577, "y_lat": 52.27377 }, { "x_lon": 20.96687, "y_lat": 52.27327 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "PARK KASKADA", "stopPointCode": "607501", "stopPointStreetName": "SŁOWACKIEGO", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 20.96681, "y_lat": 52.27323 } }, "lineStopDynamicId": "{name:\"PARK KASKADA\",lineName:\"110\",coor:\"20.96681:52.27323\",dirCoor:\"20.96948:52.27187\"}", "shape": [], "onDemand": true, "stopZoneCode": 0, "stopZoneName": "1" } ] } }, "routePartStartDepartureTimeSchedule": "2018-02-07T19:41:00.000+0100", "routePartTargetArrivalTimeSchedule": "2018-02-07T19:52:00.000+0100" }, { "routePartType": "WALK", "routePartDistanceMeters": 210, "routeWalk": { "walkShape": [ { "x_lon": 20.962329, "y_lat": 52.275319 }, { "x_lon": 20.962309, "y_lat": 52.275254 }, { "x_lon": 20.962155, "y_lat": 52.275272 }, { "x_lon": 20.962158, "y_lat": 52.275315 }, { "x_lon": 20.961985, "y_lat": 52.275334 }, { "x_lon": 20.96162, "y_lat": 52.275378 }, { "x_lon": 20.96144, "y_lat": 52.275406 }, { "x_lon": 20.961455, "y_lat": 52.27545 }, { "x_lon": 20.961458, "y_lat": 52.27546 }, { "x_lon": 20.961461, "y_lat": 52.275469 }, { "x_lon": 20.961496, "y_lat": 52.275583 }, { "x_lon": 20.961499, "y_lat": 52.275593 }, { "x_lon": 20.96152, "y_lat": 52.275666 }, { "x_lon": 20.96153, "y_lat": 52.275703 }, { "x_lon": 20.961342, "y_lat": 52.275723 }, { "x_lon": 20.961238, "y_lat": 52.27592 }, { "x_lon": 20.961225, "y_lat": 52.276185 }, { "x_lon": 20.961267, "y_lat": 52.2763 }, { "x_lon": 20.961173, "y_lat": 52.276344 }, { "x_lon": 20.960998, "y_lat": 52.276423 }, { "x_lon": 20.961001, "y_lat": 52.276426 } ] }, "routePartStartDepartureTimeSchedule": "2018-02-07T19:52:00.000+0100", "routePartTargetArrivalTimeSchedule": "2018-02-07T19:55:00.000+0100" }, { "routePartType": "PUBLIC_TRANSPORT", "routePartDistanceMeters": 10228, "routeLine": { "line": { "lineId": "ZTM_WARSZAWA-M1", "lineName": "M1", "lineVehicleType": "VEHICLE_TYPE_SUBWAY" }, "lineHeadingText": "METRO KABATY", "transportOperator": { "operatorId": 3, "operatorSymbol": "ZTM_WARSZAWA", "operatorName": "ZTM Warszawa" }, "notMainVariant": false, "departuresPeriodMinutes": 3, "courseId": "0:31", "realtimeStatus": "REALTIME_NO_PREDICTION_NO_LOCATION", "stops": { "startIndex": 1, "endIndex": 8, "stops": [ { "stopPoint": { "stopName": "METRO STARE BIELANY", "stopPointCode": "A21_BIELANY", "stopPointCoordinate": { "x_lon": 20.94931, "y_lat": 52.28183 } }, "lineStopDynamicId": "{name:\"METRO STARE BIELANY\",lineName:\"M1\",coor:\"20.94931:52.28183\",dirCoor:\"20.96021:52.27672\"}", "shape": [ { "x_lon": 20.94931, "y_lat": 52.28183 }, { "x_lon": 20.96021, "y_lat": 52.27672 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO SŁODOWIEC", "stopPointCode": "A20_SLODOWIEC", "stopPointCoordinate": { "x_lon": 20.961002, "y_lat": 52.276426 } }, "departureTimeSchedule": "2018-02-07T20:02:00.000+0100", "lineStopDynamicId": "{name:\"METRO SLODOWIEC\",lineName:\"M1\",coor:\"20.96021:52.27672\",dirCoor:\"20.97215:52.27151\"}", "shape": [ { "x_lon": 20.96021, "y_lat": 52.27672 }, { "x_lon": 20.96225, "y_lat": 52.27583 }, { "x_lon": 20.96305, "y_lat": 52.27533 }, { "x_lon": 20.96531, "y_lat": 52.27367 }, { "x_lon": 20.96702, "y_lat": 52.27289 }, { "x_lon": 20.96903, "y_lat": 52.27228 }, { "x_lon": 20.97218, "y_lat": 52.27151 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO MARYMONT", "stopPointCode": "A19_MARYMONT", "stopPointCoordinate": { "x_lon": 20.97215, "y_lat": 52.27151 } }, "departureTimeSchedule": "2018-02-07T20:03:00.000+0100", "lineStopDynamicId": "{name:\"METRO MARYMONT\",lineName:\"M1\",coor:\"20.97215:52.27151\",dirCoor:\"20.98421:52.26925\"}", "shape": [ { "x_lon": 20.97218, "y_lat": 52.27151 }, { "x_lon": 20.97309, "y_lat": 52.2715 }, { "x_lon": 20.97418, "y_lat": 52.27144 }, { "x_lon": 20.98421, "y_lat": 52.26925 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "PL. WILSONA", "stopPointCode": "A18_WILSONA", "stopPointCoordinate": { "x_lon": 20.98421, "y_lat": 52.26925 } }, "departureTimeSchedule": "2018-02-07T20:05:00.000+0100", "lineStopDynamicId": "{name:\"PLAC WILSONA\",lineName:\"M1\",coor:\"20.98421:52.26925\",dirCoor:\"20.99392:52.25831\"}", "shape": [ { "x_lon": 20.98421, "y_lat": 52.26925 }, { "x_lon": 20.98633, "y_lat": 52.26897 }, { "x_lon": 20.98693, "y_lat": 52.26865 }, { "x_lon": 20.98719, "y_lat": 52.26817 }, { "x_lon": 20.98789, "y_lat": 52.26676 }, { "x_lon": 20.99296, "y_lat": 52.26155 }, { "x_lon": 20.99324, "y_lat": 52.26059 }, { "x_lon": 20.99333, "y_lat": 52.25929 }, { "x_lon": 20.99393, "y_lat": 52.25829 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "DW. GDAŃSKI", "stopPointCode": "A17_GDANSKI", "stopPointCoordinate": { "x_lon": 20.99392, "y_lat": 52.25831 } }, "departureTimeSchedule": "2018-02-07T20:08:00.000+0100", "lineStopDynamicId": "{name:\"DWORZEC GDANSKI\",lineName:\"M1\",coor:\"20.99392:52.25831\",dirCoor:\"21.00047:52.24531\"}", "shape": [ { "x_lon": 20.99393, "y_lat": 52.25829 }, { "x_lon": 20.99523, "y_lat": 52.2569 }, { "x_lon": 20.99622, "y_lat": 52.2557 }, { "x_lon": 20.99729, "y_lat": 52.25474 }, { "x_lon": 20.9977, "y_lat": 52.25406 }, { "x_lon": 20.99794, "y_lat": 52.25334 }, { "x_lon": 20.99907, "y_lat": 52.2489 }, { "x_lon": 20.99948, "y_lat": 52.24733 }, { "x_lon": 21.00013, "y_lat": 52.2461 }, { "x_lon": 21.0005, "y_lat": 52.24528 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO RATUSZ ARSENAŁ", "stopPointCode": "A15_ARSENAL", "stopPointCoordinate": { "x_lon": 21.00047, "y_lat": 52.24531 } }, "departureTimeSchedule": "2018-02-07T20:10:00.000+0100", "lineStopDynamicId": "{name:\"METRO RATUSZ ARSENAL\",lineName:\"M1\",coor:\"21.00047:52.24531\",dirCoor:\"21.00733:52.23583\"}", "shape": [ { "x_lon": 21.0005, "y_lat": 52.24528 }, { "x_lon": 21.00733, "y_lat": 52.23581 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO ŚWIĘTOKRZYSKA", "stopPointCode": "A14_SWIETOKRZYSKA", "stopPointCoordinate": { "x_lon": 21.00733, "y_lat": 52.23583 } }, "departureTimeSchedule": "2018-02-07T20:13:00.000+0100", "lineStopDynamicId": "{name:\"METRO SWIETOKRZYSKA\",lineName:\"M1\",coor:\"21.00733:52.23583\",dirCoor:\"21.01015:52.23124\"}", "shape": [ { "x_lon": 21.00733, "y_lat": 52.23581 }, { "x_lon": 21.01017, "y_lat": 52.23122 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "CENTRUM", "stopPointCode": "A13_CENTRUM", "stopPointCoordinate": { "x_lon": 21.01015, "y_lat": 52.23124 } }, "departureTimeSchedule": "2018-02-07T20:14:00.000+0100", "lineStopDynamicId": "{name:\"CENTRUM\",lineName:\"M1\",coor:\"21.01015:52.23124\",dirCoor:\"21.01533:52.21840\"}", "shape": [ { "x_lon": 21.01017, "y_lat": 52.23122 }, { "x_lon": 21.01133, "y_lat": 52.22948 }, { "x_lon": 21.01244, "y_lat": 52.22848 }, { "x_lon": 21.01572, "y_lat": 52.22314 }, { "x_lon": 21.01585, "y_lat": 52.22252 }, { "x_lon": 21.01534, "y_lat": 52.21836 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO POLITECHNIKA", "stopPointCode": "A11_POLITECHNIKA", "stopPointCoordinate": { "x_lon": 21.015271, "y_lat": 52.219528 } }, "departureTimeSchedule": "2018-02-07T20:16:00.000+0100", "arrivalTimeSchedule": "2018-02-07T20:16:00.000+0100", "lineStopDynamicId": "{name:\"METRO POLITECHNIKA\",lineName:\"M1\",coor:\"21.01533:52.21840\",dirCoor:\"21.00780:52.20894\"}", "shape": [ { "x_lon": 21.01534, "y_lat": 52.21836 }, { "x_lon": 21.01431, "y_lat": 52.21642 }, { "x_lon": 21.01244, "y_lat": 52.21471 }, { "x_lon": 21.00886, "y_lat": 52.21165 }, { "x_lon": 21.00819, "y_lat": 52.21094 }, { "x_lon": 21.00774, "y_lat": 52.21028 }, { "x_lon": 21.00768, "y_lat": 52.20956 }, { "x_lon": 21.00781, "y_lat": 52.2089 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO POLE MOKOTOWSKIE", "stopPointCode": "A10_MOKOTOWSKIE", "stopPointCoordinate": { "x_lon": 21.0078, "y_lat": 52.20894 } }, "lineStopDynamicId": "{name:\"METRO POLE MOKOTOWSKIE\",lineName:\"M1\",coor:\"21.00780:52.20894\",dirCoor:\"21.01215:52.19898\"}", "shape": [], "stopZoneCode": 0, "stopZoneName": "1" } ] } }, "routePartStartDepartureTimeSchedule": "2018-02-07T20:02:00.000+0100", "routePartTargetArrivalTimeSchedule": "2018-02-07T20:16:00.000+0100" }, { "routePartType": "WALK", "routePartDistanceMeters": 100, "routeWalk": { "walkShape": [ { "x_lon": 21.01516, "y_lat": 52.21865 }, { "x_lon": 21.015159, "y_lat": 52.218649 }, { "x_lon": 21.015157, "y_lat": 52.21866 }, { "x_lon": 21.015171, "y_lat": 52.218707 }, { "x_lon": 21.015201, "y_lat": 52.218857 }, { "x_lon": 21.015224, "y_lat": 52.219004 }, { "x_lon": 21.015253, "y_lat": 52.219321 }, { "x_lon": 21.015266, "y_lat": 52.219424 }, { "x_lon": 21.015277, "y_lat": 52.219527 }, { "x_lon": 21.015271, "y_lat": 52.219527 } ] }, "routePartStartDepartureTimeSchedule": "2018-02-07T20:16:00.000+0100", "routePartTargetArrivalTimeSchedule": "2018-02-07T20:17:00.000+0100" }, { "routePartType": "PUBLIC_TRANSPORT", "routePartDistanceMeters": 18277, "routeLine": { "line": { "lineId": "ZTM_WARSZAWA-411", "lineName": "411", "lineVehicleType": "VEHICLE_TYPE_BUS", "lineType": "FAST" }, "lineHeadingText": "STARA MIŁOSNA", "transportOperator": { "operatorId": 3, "operatorSymbol": "ZTM_WARSZAWA", "operatorName": "ZTM Warszawa" }, "notMainVariant": false, "departuresPeriodMinutes": 30, "courseId": "0:31", "realtimeStatus": "REALTIME_NO_PREDICTION_NO_LOCATION", "stops": { "startIndex": 1, "endIndex": 19, "stops": [ { "stopPoint": { "stopName": "PL. KONSTYTUCJI", "stopPointCode": "701101", "stopPointStreetName": "PL.KONSTYTUCJI", "stopPointCodeInGroup": "01", "stopPointCoordinate": { "x_lon": 21.01579, "y_lat": 52.2223 } }, "lineStopDynamicId": "{name:\"PLAC KONSTYTUCJI\",lineName:\"411\",coor:\"21.01579:52.22230\",dirCoor:\"21.01516:52.21865\"}", "shape": [ { "x_lon": 21.0159, "y_lat": 52.22232 }, { "x_lon": 21.01591, "y_lat": 52.22218 }, { "x_lon": 21.01574, "y_lat": 52.22168 }, { "x_lon": 21.01566, "y_lat": 52.22145 }, { "x_lon": 21.01569, "y_lat": 52.22095 }, { "x_lon": 21.01557, "y_lat": 52.21993 }, { "x_lon": 21.01543, "y_lat": 52.21911 }, { "x_lon": 21.01526, "y_lat": 52.21865 }, { "x_lon": 21.01516, "y_lat": 52.21865 } ], "stopZoneCode": 0, "stopZoneName": "1" }, { "stopPoint": { "stopName": "METRO POLITECHNIKA", "stopPointCode": "700607", "stopPointStreetName": "WARYŃSKIEGO", "stopPointCodeInGroup": "07", "stopPointCoordinate": { "x_lon": 21.01516, "y_lat": 52.21865 } }, "departureTimeSchedule": "2018-02-07T20:21:00.000+0100", "lineStopDynamicId": "{name:\"METRO POLITECHNIKA\
_ contacto:
Jacek: j.markusiewicz@gmail.com Ander: andergortazar@gmail.com