diff --git a/20220701124904.csv b/20220701124904.csv new file mode 100755 index 0000000..be6cbab --- /dev/null +++ b/20220701124904.csv @@ -0,0 +1,87 @@ +time,lat,lon,elevation,accuracy,bearing,speed,satellites,provider,hdop,vdop,pdop,geoidheight,ageofdgpsdata,dgpsid,activity,battery,annotation,timestamp_ms,time_offset,distance,starttimestamp_ms,profile_name,battery_charging +2022-07-01T10:49:07.000Z,49.41185089,8.67646861,164.793212890625,3.216,179.8,5.44,0,gps,,,,,,,,55,,1656672547000,2022-07-01T12:49:07.000+02:00,0.0,1656672544796,Standardprofil,false +2022-07-01T10:49:12.660Z,49.41166303,8.67652893,160.7393798828125,6.432,171.7,4.8,0,gps,0.5,0.6,0.8,47.9,,,,55,,1656672552660,2022-07-01T12:49:12.660+02:00,21.340034055963667,1656672544796,Standardprofil,false +2022-07-01T10:49:20.000Z,49.41123636,8.67652849,161.337158203125,6.432,185.3,6.26,0,gps,1.1,0.9,1.4,47.9,,,,55,,1656672560000,2022-07-01T12:49:20.000+02:00,68.78358408663348,1656672544796,Standardprofil,false +2022-07-01T10:49:25.693Z,49.41084041,8.67651128,155.31097412109375,7.504,176.2,6.22,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672565693,2022-07-01T12:49:25.693+02:00,112.82881700560978,1656672544796,Standardprofil,false +2022-07-01T10:49:31.870Z,49.41049801,8.67656948,157.7611083984375,7.504,170.2,6.08,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672571870,2022-07-01T12:49:31.870+02:00,151.1340823915778,1656672544796,Standardprofil,false +2022-07-01T10:49:38.053Z,49.4102198,8.67658131,160.52813720703125,9.648001,175.0,5.88,0,gps,0.9,0.7,1.1,47.9,,,,55,,1656672578053,2022-07-01T12:49:38.053+02:00,182.0814600537094,1656672544796,Standardprofil,false +2022-07-01T10:49:44.222Z,49.40982577,8.67668618,170.07586669921875,6.432,174.2,6.77,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672584222,2022-07-01T12:49:44.222+02:00,226.54766344661743,1656672544796,Standardprofil,false +2022-07-01T10:49:50.379Z,49.4095211,8.6767495,176.42266845703125,9.648001,169.8,5.73,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672590379,2022-07-01T12:49:50.379+02:00,260.73375813453976,1656672544796,Standardprofil,false +2022-07-01T10:49:59.000Z,49.40881224,8.67658343,172.87310791015625,9.648001,160.9,7.77,10,gps,0.7,0.7,1.1,47.9,,,,55,,1656672599000,2022-07-01T12:49:59.000+02:00,340.4658819704016,1656672544796,Standardprofil,false +2022-07-01T10:50:06.000Z,49.4083738,8.67664092,168.78399658203125,8.576,172.2,4.67,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672606000,2022-07-01T12:50:06.000+02:00,389.39529840187066,1656672544796,Standardprofil,false +2022-07-01T10:50:13.000Z,49.4080936,8.676667,165.38623046875,6.432,191.0,1.81,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672613000,2022-07-01T12:50:13.000+02:00,420.6092015019477,1656672544796,Standardprofil,false +2022-07-01T10:50:20.000Z,49.40797358,8.67662421,153.93585205078125,7.504,181.3,1.8,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672620000,2022-07-01T12:50:20.000+02:00,434.3092023133824,1656672544796,Standardprofil,false +2022-07-01T10:50:27.000Z,49.40791573,8.67663151,171.08355712890625,9.648001,176.4,0.81,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672627000,2022-07-01T12:50:27.000+02:00,440.76347530339683,1656672544796,Standardprofil,false +2022-07-01T10:50:32.673Z,49.40795257,8.6766228,169.77978515625,9.648001,81.9,0.44,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672632673,2022-07-01T12:50:32.673+02:00,444.90808508192276,1656672544796,Standardprofil,false +2022-07-01T10:50:41.000Z,49.40798433,8.67665855,165.6785888671875,8.576,,0.0,12,gps,0.7,0.8,1.0,47.9,,,,55,,1656672641000,2022-07-01T12:50:41.000+02:00,449.2855378160787,1656672544796,Standardprofil,false +2022-07-01T10:50:46.645Z,49.4079701,8.67669428,167.1348876953125,9.648001,187.2,0.74,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672646645,2022-07-01T12:50:46.645+02:00,452.3164519271575,1656672544796,Standardprofil,false +2022-07-01T10:50:52.804Z,49.40799444,8.67669857,167.793701171875,9.648001,139.3,0.29,0,gps,1.0,0.8,1.3,47.9,,,,55,,1656672652804,2022-07-01T12:50:52.804+02:00,455.0406761917534,1656672544796,Standardprofil,false +2022-07-01T10:51:01.000Z,49.40789121,8.6766631,171.06378173828125,7.504,169.7,4.19,8,gps,0.9,0.8,1.2,47.9,,,,55,,1656672661000,2022-07-01T12:51:01.000+02:00,466.80270484734785,1656672544796,Standardprofil,false +2022-07-01T10:51:08.000Z,49.40755973,8.67658864,162.71923828125,8.576,191.2,4.02,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672668000,2022-07-01T12:51:08.000+02:00,504.0532207597726,1656672544796,Standardprofil,false +2022-07-01T10:51:17.000Z,49.40689473,8.67677555,161.97900390625,9.648001,174.2,10.19,10,gps,0.9,0.8,1.3,47.9,,,,55,,1656672677000,2022-07-01T12:51:17.000+02:00,579.2242819251658,1656672544796,Standardprofil,false +2022-07-01T10:51:25.000Z,49.40620921,8.67697955,157.0787353515625,8.576,166.9,8.33,8,gps,0.9,0.9,1.2,47.9,,,,55,,1656672685000,2022-07-01T12:51:25.000+02:00,656.8665037961891,1656672544796,Standardprofil,false +2022-07-01T10:51:33.000Z,49.40555543,8.67708163,168.9840087890625,9.648001,177.9,9.86,8,gps,1.1,0.9,1.4,47.9,,,,55,,1656672693000,2022-07-01T12:51:33.000+02:00,729.9377583515463,1656672544796,Standardprofil,false +2022-07-01T10:51:42.000Z,49.40499466,8.67692979,165.2921142578125,7.504,189.7,7.18,10,gps,1.0,0.8,1.3,47.9,,,,55,,1656672702000,2022-07-01T12:51:42.000+02:00,793.252994607475,1656672544796,Standardprofil,false +2022-07-01T10:51:47.669Z,49.40458895,8.67694948,168.7447509765625,9.648001,170.6,7.08,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672707669,2022-07-01T12:51:47.669+02:00,838.3883787584027,1656672544796,Standardprofil,false +2022-07-01T10:51:53.840Z,49.40416906,8.67702318,167.63067626953125,6.432,154.8,7.86,0,gps,1.2,0.8,1.4,47.9,,,,55,,1656672713840,2022-07-01T12:51:53.840+02:00,885.3815650590215,1656672544796,Standardprofil,false +2022-07-01T10:52:00.005Z,49.40382355,8.67724113,162.96783447265625,7.504,157.9,5.74,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672720005,2022-07-01T12:52:00.005+02:00,926.9112558061014,1656672544796,Standardprofil,false +2022-07-01T10:52:06.176Z,49.40350553,8.67751751,158.42529296875,8.576,145.4,7.33,0,gps,1.1,0.8,1.4,47.9,,,,55,,1656672726176,2022-07-01T12:52:06.176+02:00,967.536511168597,1656672544796,Standardprofil,false +2022-07-01T10:52:12.341Z,49.40314888,8.67785638,157.397216796875,5.36,152.5,7.16,0,gps,1.3,0.8,1.5,47.9,,,,55,,1656672732341,2022-07-01T12:52:12.341+02:00,1014.1622250937615,1656672544796,Standardprofil,false +2022-07-01T10:52:18.508Z,49.40273859,8.67812989,153.8641357421875,5.36,144.7,8.15,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672738508,2022-07-01T12:52:18.508+02:00,1063.8920579756032,1656672544796,Standardprofil,false +2022-07-01T10:52:24.674Z,49.40232416,8.67848992,161.98388671875,9.648001,145.2,8.26,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672744674,2022-07-01T12:52:24.674+02:00,1116.8285784251282,1656672544796,Standardprofil,false +2022-07-01T10:52:30.833Z,49.40220921,8.67911913,158.790283203125,9.648001,122.2,7.02,0,gps,2.4,0.9,2.5,47.9,,,,55,,1656672750833,2022-07-01T12:52:30.833+02:00,1164.1180290625236,1656672544796,Standardprofil,false +2022-07-01T10:52:36.988Z,49.40197856,8.67962545,161.365234375,7.504,126.8,7.18,0,gps,2.3,1.0,2.5,47.9,,,,55,,1656672756988,2022-07-01T12:52:36.988+02:00,1208.8400169031324,1656672544796,Standardprofil,false +2022-07-01T10:52:45.000Z,49.40163851,8.68023891,157.44244384765625,5.36,132.3,7.12,5,gps,1.5,0.9,1.8,47.9,,,,55,,1656672765000,2022-07-01T12:52:45.000+02:00,1267.151343251371,1656672544796,Standardprofil,false +2022-07-01T10:52:50.662Z,49.40129879,8.68054592,154.092529296875,9.648001,153.1,6.37,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672770662,2022-07-01T12:52:50.662+02:00,1310.9747028011654,1656672544796,Standardprofil,false +2022-07-01T10:53:07.000Z,49.40050412,8.68132096,153.906494140625,9.648001,158.6,4.78,10,gps,0.9,0.8,1.2,47.9,,,,55,,1656672787000,2022-07-01T12:53:07.000+02:00,1415.6330706674762,1656672544796,Standardprofil,false +2022-07-01T10:53:12.700Z,49.40034406,8.68167395,155.7847900390625,9.648001,127.2,4.9,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672792700,2022-07-01T12:53:12.700+02:00,1446.765286397072,1656672544796,Standardprofil,false +2022-07-01T10:53:20.000Z,49.40029889,8.68197948,141.802734375,8.576,129.9,4.18,0,gps,0.9,0.8,1.3,47.9,,,,55,,1656672800000,2022-07-01T12:53:20.000+02:00,1469.4374919545232,1656672544796,Standardprofil,false +2022-07-01T10:53:27.000Z,49.4000934,8.68233753,141.012939453125,7.504,129.6,4.44,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672807000,2022-07-01T12:53:27.000+02:00,1503.9830250057967,1656672544796,Standardprofil,false +2022-07-01T10:53:34.000Z,49.39977873,8.68282787,140.42315673828125,7.504,133.2,6.22,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672814000,2022-07-01T12:53:34.000+02:00,1553.8155602967113,1656672544796,Standardprofil,false +2022-07-01T10:53:39.676Z,49.39954051,8.68310713,139.63031005859375,8.576,126.6,6.31,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672819676,2022-07-01T12:53:39.676+02:00,1587.1326688887266,1656672544796,Standardprofil,false +2022-07-01T10:53:45.836Z,49.39926802,8.68338566,136.76104736328125,9.648001,127.7,6.2,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672825836,2022-07-01T12:53:45.836+02:00,1623.5236336178036,1656672544796,Standardprofil,false +2022-07-01T10:53:52.006Z,49.39909119,8.68379701,135.154541015625,8.576,117.7,5.37,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672832006,2022-07-01T12:53:52.006+02:00,1659.1983866658754,1656672544796,Standardprofil,false +2022-07-01T10:54:00.000Z,49.39877088,8.68459149,151.72412109375,7.504,111.4,6.57,15,gps,0.6,0.7,0.9,47.9,,,,55,,1656672840000,2022-07-01T12:54:00.000+02:00,1726.8289616121415,1656672544796,Standardprofil,false +2022-07-01T10:54:05.692Z,49.39865451,8.68498273,156.107177734375,8.576,139.1,2.47,0,gps,0.6,0.7,0.9,47.9,,,,55,,1656672845692,2022-07-01T12:54:05.692+02:00,1757.9577961166412,1656672544796,Standardprofil,false +2022-07-01T10:54:13.000Z,49.39838235,8.68510378,148.8057861328125,9.648001,162.8,5.07,0,gps,0.8,0.7,1.1,47.9,,,,55,,1656672853000,2022-07-01T12:54:13.000+02:00,1789.4628987561766,1656672544796,Standardprofil,false +2022-07-01T10:54:20.000Z,49.39808397,8.6851097,149.4029541015625,9.648001,190.4,5.89,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672860000,2022-07-01T12:54:20.000+02:00,1822.6440066516918,1656672544796,Standardprofil,false +2022-07-01T10:54:25.684Z,49.39778037,8.68529797,157.1925048828125,8.576,112.7,5.38,0,gps,1.5,0.8,1.7,47.9,,,,55,,1656672865684,2022-07-01T12:54:25.684+02:00,1859.0483636112897,1656672544796,Standardprofil,false +2022-07-01T10:54:33.000Z,49.39735536,8.6855275,166.543212890625,7.504,201.4,5.57,0,gps,1.0,0.8,1.3,47.9,,,,55,,1656672873000,2022-07-01T12:54:33.000+02:00,1909.1413715201775,1656672544796,Standardprofil,false +2022-07-01T10:54:40.000Z,49.39701056,8.68558536,165.46282958984375,6.432,172.3,4.78,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672880000,2022-07-01T12:54:40.000+02:00,1947.7093460178817,1656672544796,Standardprofil,false +2022-07-01T10:54:49.000Z,49.39683103,8.6859003,159.673095703125,8.576,78.5,5.95,13,gps,0.6,0.7,0.9,47.9,,,,55,,1656672889000,2022-07-01T12:54:49.000+02:00,1978.0072135007383,1656672544796,Standardprofil,false +2022-07-01T10:54:56.000Z,49.39672644,8.68651683,164.03118896484375,9.648001,117.9,6.34,0,gps,0.6,0.7,0.9,47.9,,,,55,,1656672896000,2022-07-01T12:54:56.000+02:00,2024.1147958844733,1656672544796,Standardprofil,false +2022-07-01T10:55:03.000Z,49.3964463,8.68696265,163.10009765625,9.648001,148.6,4.8,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672903000,2022-07-01T12:55:03.000+02:00,2068.9615821397474,1656672544796,Standardprofil,false +2022-07-01T10:55:12.000Z,49.39620133,8.68741868,162.3466796875,9.648001,144.3,3.96,13,gps,0.6,0.7,1.0,47.9,,,,54,,1656672912000,2022-07-01T12:55:12.000+02:00,2111.753204600708,1656672544796,Standardprofil,false +2022-07-01T10:55:19.000Z,49.39597341,8.6874125,165.5712890625,9.648001,195.5,5.6,0,gps,0.6,0.7,1.0,47.9,,,,54,,1656672919000,2022-07-01T12:55:19.000+02:00,2137.1006981760993,1656672544796,Standardprofil,false +2022-07-01T10:55:29.000Z,49.39537879,8.68760769,165.21795654296875,9.648001,172.8,7.66,10,gps,0.7,0.8,1.1,47.9,,,,54,,1656672929000,2022-07-01T12:55:29.000+02:00,2204.7115149032834,1656672544796,Standardprofil,false +2022-07-01T10:55:37.000Z,49.3949609,8.68750202,172.23260498046875,8.576,172.5,7.25,6,gps,1.1,0.8,1.4,47.9,,,,54,,1656672937000,2022-07-01T12:55:37.000+02:00,2251.803836528299,1656672544796,Standardprofil,false +2022-07-01T10:55:48.000Z,49.39423945,8.6877149,177.05401611328125,8.576,175.4,6.57,10,gps,0.8,0.8,1.1,47.9,,,,54,,1656672948000,2022-07-01T12:55:48.000+02:00,2333.491384425079,1656672544796,Standardprofil,false +2022-07-01T10:55:55.000Z,49.39378364,8.68773376,176.10064697265625,9.648001,176.5,6.08,0,gps,0.8,0.8,1.1,47.9,,,,54,,1656672955000,2022-07-01T12:55:55.000+02:00,2384.193519574299,1656672544796,Standardprofil,false +2022-07-01T10:56:03.000Z,49.39340213,8.68778782,176.1510009765625,7.504,178.4,5.4,10,gps,0.7,0.7,1.0,47.9,,,,54,,1656672963000,2022-07-01T12:56:03.000+02:00,2426.7955300468543,1656672544796,Standardprofil,false +2022-07-01T10:56:10.000Z,49.39303098,8.68791288,175.6314697265625,9.648001,166.6,6.07,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656672970000,2022-07-01T12:56:10.000+02:00,2469.046354671533,1656672544796,Standardprofil,false +2022-07-01T10:56:15.653Z,49.39268479,8.68795369,177.4873046875,8.576,173.1,6.6,0,gps,1.0,0.9,1.3,47.9,,,,54,,1656672975653,2022-07-01T12:56:15.653+02:00,2507.6540680712505,1656672544796,Standardprofil,false +2022-07-01T10:56:21.852Z,49.39248838,8.68813889,164.92047119140625,6.432,166.0,5.87,0,gps,1.0,0.8,1.3,47.9,,,,54,,1656672981852,2022-07-01T12:56:21.852+02:00,2533.2789287080063,1656672544796,Standardprofil,false +2022-07-01T10:56:28.021Z,49.3921367,8.68808023,158.7437744140625,9.648001,169.9,6.92,0,gps,1.1,0.9,1.4,47.9,,,,54,,1656672988021,2022-07-01T12:56:28.021+02:00,2572.613741431788,1656672544796,Standardprofil,false +2022-07-01T10:56:34.192Z,49.39168962,8.68813309,158.1988525390625,8.576,171.1,6.26,0,gps,1.0,0.9,1.3,47.9,,,,54,,1656672994192,2022-07-01T12:56:34.192+02:00,2622.473758685886,1656672544796,Standardprofil,false +2022-07-01T10:56:43.000Z,49.39117231,8.68814905,152.85247802734375,7.504,180.9,6.71,8,gps,0.9,0.8,1.2,47.9,,,,54,,1656673003000,2022-07-01T12:56:43.000+02:00,2680.0076029923166,1656672544796,Standardprofil,false +2022-07-01T10:56:50.000Z,49.39076199,8.68818273,161.584228515625,7.504,188.0,6.64,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656673010000,2022-07-01T12:56:50.000+02:00,2725.6981762644095,1656672544796,Standardprofil,false +2022-07-01T10:56:59.000Z,49.39058452,8.68776805,154.8408203125,9.648001,279.4,5.51,9,gps,1.0,0.8,1.3,47.9,,,,54,,1656673019000,2022-07-01T12:56:59.000+02:00,2761.6176369639265,1656672544796,Standardprofil,false +2022-07-01T10:57:04.656Z,49.39048152,8.68746322,153.287353515625,9.648001,186.3,6.89,0,gps,0.9,0.8,1.3,47.9,,,,54,,1656673024656,2022-07-01T12:57:04.656+02:00,2786.4758625260642,1656672544796,Standardprofil,false +2022-07-01T10:57:10.827Z,49.39009475,8.68742468,151.33355712890625,8.576,179.0,6.6,0,gps,1.4,0.9,1.7,47.9,,,,54,,1656673030827,2022-07-01T12:57:10.827+02:00,2829.5730896704777,1656672544796,Standardprofil,false +2022-07-01T10:57:18.000Z,49.38966856,8.68741891,177.71246337890625,7.504,266.4,4.91,0,gps,1.0,0.8,1.2,47.9,,,,54,,1656673038000,2022-07-01T12:57:18.000+02:00,2876.965095528558,1656672544796,Standardprofil,false +2022-07-01T10:57:26.000Z,49.3896966,8.68683682,170.60595703125,8.576,234.0,3.67,10,gps,0.7,0.8,1.1,47.9,,,,54,,1656673046000,2022-07-01T12:57:26.000+02:00,2919.2108157627968,1656672544796,Standardprofil,false +2022-07-01T10:57:34.000Z,49.38985798,8.68647962,165.421630859375,8.576,256.8,0.9,6,gps,1.3,0.9,1.5,47.9,,,,54,,1656673054000,2022-07-01T12:57:34.000+02:00,2950.681543629,1656672544796,Standardprofil,false +2022-07-01T11:00:12.000Z,49.38983544,8.68654936,164.2235107421875,9.648001,81.5,3.51,10,gps,0.9,0.9,1.2,47.9,,,,54,,1656673212000,2022-07-01T13:00:12.000+02:00,2956.3171642923676,1656672544796,Standardprofil,false +2022-07-01T11:00:19.000Z,49.38982943,8.68686349,163.4822998046875,8.576,80.6,3.43,0,gps,0.9,0.9,1.2,47.9,,,,54,,1656673219000,2022-07-01T13:00:19.000+02:00,2979.063013246735,1656672544796,Standardprofil,false +2022-07-01T11:00:24.649Z,49.38988557,8.68711804,157.4073486328125,7.504,69.2,1.72,0,gps,0.9,0.9,1.3,47.9,,,,54,,1656673224649,2022-07-01T13:00:24.649+02:00,2998.515603181087,1656672544796,Standardprofil,false +2022-07-01T11:00:32.000Z,49.38975355,8.68742027,157.98388671875,9.648001,116.2,2.37,0,gps,0.8,0.8,1.2,47.9,,,,54,,1656673232000,2022-07-01T13:00:32.000+02:00,3024.8595835424962,1656672544796,Standardprofil,false +2022-07-01T11:00:39.000Z,49.38968475,8.68789061,158.14898681640625,8.576,90.1,5.99,0,gps,0.6,0.7,1.0,47.9,,,,54,,1656673239000,2022-07-01T13:00:39.000+02:00,3059.750840772249,1656672544796,Standardprofil,false +2022-07-01T11:00:47.000Z,49.38968741,8.68864464,156.318115234375,8.576,80.9,5.8,10,gps,0.8,0.8,1.1,47.9,,,,54,,1656673247000,2022-07-01T13:00:47.000+02:00,3114.3268166123057,1656672544796,Standardprofil,false +2022-07-01T11:00:56.000Z,49.38981096,8.68935897,158.6549072265625,9.648001,63.5,5.21,9,gps,0.8,0.8,1.2,47.9,,,,54,,1656673256000,2022-07-01T13:00:56.000+02:00,3167.8226320775525,1656672544796,Standardprofil,false +2022-07-01T11:01:03.000Z,49.38991498,8.6898232,162.62811279296875,9.648001,79.1,4.26,0,gps,0.8,0.8,1.2,47.9,,,,54,,1656673263000,2022-07-01T13:01:03.000+02:00,3203.3576563511497,1656672544796,Standardprofil,false +2022-07-01T11:01:13.000Z,49.39008687,8.69005123,140.983154296875,9.648001,11.8,1.66,11,gps,0.7,0.7,1.0,47.9,,,,54,,1656673273000,2022-07-01T13:01:13.000+02:00,3228.610542236974,1656672544796,Standardprofil,false +2022-07-01T11:01:20.000Z,49.39012705,8.69004198,148.57745361328125,9.648001,25.1,0.77,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656673280000,2022-07-01T13:01:20.000+02:00,3233.128236689387,1656672544796,Standardprofil,false +2022-07-01T11:01:42.000Z,49.39012273,8.69044973,156.05230712890625,9.648001,80.0,0.5,9,gps,1.3,0.8,1.6,47.9,,,,54,,1656673302000,2022-07-01T13:01:42.000+02:00,3262.6440068575403,1656672544796,Standardprofil,false +2022-07-01T11:03:13.000Z,49.39020013,8.69013153,174.82879638671875,9.648001,184.9,0.3,12,gps,0.7,0.7,1.0,47.9,,,,52,,1656673393000,2022-07-01T13:03:13.000+02:00,3287.2300473534465,1656672544796,Standardprofil,false +2022-07-01T11:03:37.000Z,49.3902416,8.69011779,175.5267333984375,9.648001,10.0,0.42,7,gps,1.1,0.9,1.4,47.9,,,,52,,1656673417000,2022-07-01T13:03:37.000+02:00,3291.9473152030705,1656672544796,Standardprofil,false +2022-07-01T11:06:03.000Z,49.39010871,8.68987621,171.87139892578125,9.648001,,0.0,6,gps,1.2,0.9,1.5,47.9,,,,52,,1656673563000,2022-07-01T13:06:03.000+02:00,3314.8399432225724,1656672544796,Standardprofil,false diff --git a/browser.html~ b/browser.html~ index 0752a8c..992dccc 100644 --- a/browser.html~ +++ b/browser.html~ @@ -27,32 +27,42 @@ - + --> diff --git a/functions.js b/functions.js index b140305..6fbda00 100644 --- a/functions.js +++ b/functions.js @@ -1,22 +1,59 @@ +// needed for instantiation of ipfs + const initIPFS = async (IPFS, ORBITDB) => { -//async function main () { // Create IPFS instance - //const ipfsOptions = { repo : './ipfs', } - //const ipfs = await IPFS.create(ipfsOptions) + // const ipfsOptions = { repo: '/orbitdb/examples/browser/new/ipfs/0.33.1', } + //const ipfs = await Ipfs.create(ipfsOptions) // Create OrbitDB instance //const orbitdb = await OrbitDB.createInstance(ipfs) - //} -// -function aundb (a, b) { - return a * b; + +} +initIPFS() + + + async function createDb(db_name){ + // Create database instance + + const ipfsOptions = { repo: '/orbitdb/examples/browser/new/ipfs/0.33.1', } + const ipfs = await Ipfs.create(ipfsOptions) + const orbitdb = await OrbitDB.createInstance(ipfs) + // Create IPFS instance + const db = await orbitdb.keyvalue(db_name) + const address = db.address + console.log(address) + console.log(db.address.toString()) + //await db.put('2022-07-01T10:49:07', '49.41185089/8.67646861') + //await db.put('2022-07-01T10:49:12', '49.41166303/8.67652893') + let csv = "./new.csv" + const value = db.all + //console.log(value) + console.log('datenbank erstellt danke') + //console.log(value) + await db.close() + return db + } + +async function loadRoute(db_name){ + const ipfsOptions = { repo: '/orbitdb/los', } + const ipfs = await Ipfs.create(ipfsOptions) + const orbitdb = await OrbitDB.createInstance(ipfs) + + const db = await orbitdb.keyvalue(db_name) + await db.load() + console.log("loadroute ausgeführt") + const value = db.all + console.log(value) + return value; +} +async function connectDB(dbname){ + const ipfsOptions = { repo: '/orbitdb/los', } + const ipfs = await Ipfs.create(ipfsOptions) + const orbitdb = await OrbitDB.createInstance(ipfs) + const db_route2 = await orbitdb.open('/orbitdb/zdpuAoog9p95yvwyGcL3xJsGcdMkxVdEDRwYwba1JrKNEgQod/'+dbname); + const route2 = db_route2.all + console.log(route2); } -async function bend() { - // Create IPFS instance - const ipfsOptions = { repo : './ipfs', } - const ipfs = await IPFS.create(ipfsOptions) - // Create OrbitDB instance - const orbitdb = await OrbitDB.createInstance(ipfs) - } + diff --git a/functions.js~ b/functions.js~ index 010eeaf..b14936d 100644 --- a/functions.js~ +++ b/functions.js~ @@ -1,15 +1,31 @@ +// needed for instantiation of ipfs + const initIPFS = async (IPFS, ORBITDB) => { -//async function main () { // Create IPFS instance - //const ipfsOptions = { repo : './ipfs', } - //const ipfs = await IPFS.create(ipfsOptions) + // const ipfsOptions = { repo: '/orbitdb/examples/browser/new/ipfs/0.33.1', } + //const ipfs = await Ipfs.create(ipfsOptions) // Create OrbitDB instance //const orbitdb = await OrbitDB.createInstance(ipfs) - //} -// -function aundb (a, b) { - return a * b; + } +initIPFS() + + async function createDb(){ + // Create database instance + // Create IPFS instance + const ipfsOptions = { repo: '/orbitdb/examples/browser/new/ipfs/0.33.1', } + const ipfs = await Ipfs.create(ipfsOptions) + const orbitdb = await OrbitDB.createInstance(ipfs) + const db = await orbitdb.keyvalue('route1') + const address = db.address + console.log(address) + console.log(db.address.toString()) + await db.put('2022-07-01T10:49:07', '49.41185089/8.67646861') + await db.put('2022-07-01T10:49:12', '49.41166303/8.67652893') + const value = db.all + console.log(value) + } +createDb() diff --git a/index.html b/index.html new file mode 100644 index 0000000..68c744f --- /dev/null +++ b/index.html @@ -0,0 +1,244 @@ + +
+ + + + + +- _ _ _ _ _ - | | (_) | | | | - ___ _ __| |__ _| |_ __| | |__ - / _ \| '__| '_ \| | __| / _\` | '_\ - | (_) | | | |_) | | |_ | (_| | |_) | - \___/|_| |_.__/|_|\__| \__,_|_.__/ +- Peer-to-Peer Database for the Decentralized Web - +- + ++
+- + +
+ ++ ++ + +++Route 1
++ + Jan 21, 2020 ++- + +
+ +++ + +++Route 2
++ + Jan 22, 2020 +++- --> + + + + + + + + + diff --git a/jquery-csv.js b/jquery-csv.js new file mode 100644 index 0000000..1e07629 --- /dev/null +++ b/jquery-csv.js @@ -0,0 +1,1028 @@ +/* eslint no-prototype-builtins: 0 */ +/** + * jQuery-csv (jQuery Plugin) + * + * This document is licensed as free software under the terms of the + * MIT License: http://www.opensource.org/licenses/mit-license.php + * + * Acknowledgements: + * The original design and influence to implement this library as a jquery + * plugin is influenced by jquery-json (http://code.google.com/p/jquery-json/). + * If you're looking to use native JSON.Stringify but want additional backwards + * compatibility for browsers that don't support it, I highly recommend you + * check it out. + * + * A special thanks goes out to rwk@acm.org for providing a lot of valuable + * feedback to the project including the core for the new FSM + * (Finite State Machine) parsers. If you're looking for a stable TSV parser + * be sure to take a look at jquery-tsv (http://code.google.com/p/jquery-tsv/). + + * For legal purposes I'll include the "NO WARRANTY EXPRESSED OR IMPLIED. + * USE AT YOUR OWN RISK.". Which, in 'layman's terms' means, by using this + * library you are accepting responsibility if it breaks your code. + * + * Legal jargon aside, I will do my best to provide a useful and stable core + * that can effectively be built on. + * + * Copyrighted 2012 by Evan Plaice. + */ + + RegExp.escape = function (s) { + return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') + }; + + (function () { + 'use strict' + + let $ + + // to keep backwards compatibility + if (typeof jQuery !== 'undefined' && jQuery) { + $ = jQuery + } else { + $ = {} + } + + /** + * jQuery.csv.defaults + * Encapsulates the method paramater defaults for the CSV plugin module. + */ + + $.csv = { + defaults: { + separator: ',', + delimiter: '"', + headers: true + }, + + hooks: { + castToScalar: function (value, state) { + const hasDot = /\./ + if (isNaN(value)) { + return value + } else { + if (hasDot.test(value)) { + return parseFloat(value) + } else { + const integer = parseInt(value) + if (isNaN(integer)) { + return null + } else { + return integer + } + } + } + } + }, + + parsers: { + parse: function (csv, options) { + // cache settings + const separator = options.separator + const delimiter = options.delimiter + + // set initial state if it's missing + if (!options.state.rowNum) { + options.state.rowNum = 1 + } + if (!options.state.colNum) { + options.state.colNum = 1 + } + + // clear initial state + const data = [] + let entry = [] + let state = 0 + let value = '' + let exit = false + + function endOfEntry () { + // reset the state + state = 0 + value = '' + + // if 'start' hasn't been met, don't output + if (options.start && options.state.rowNum < options.start) { + // update global state + entry = [] + options.state.rowNum++ + options.state.colNum = 1 + return + } + + if (options.onParseEntry === undefined) { + // onParseEntry hook not set + data.push(entry) + } else { + const hookVal = options.onParseEntry(entry, options.state) // onParseEntry Hook + // false skips the row, configurable through a hook + if (hookVal !== false) { + data.push(hookVal) + } + } + // console.log('entry:' + entry); + + // cleanup + entry = [] + + // if 'end' is met, stop parsing + if (options.end && options.state.rowNum >= options.end) { + exit = true + } + + // update global state + options.state.rowNum++ + options.state.colNum = 1 + } + + function endOfValue () { + if (options.onParseValue === undefined) { + // onParseValue hook not set + entry.push(value) + } else if (options.headers && options.state.rowNum === 1) { + // don't onParseValue object headers + entry.push(value) + } else { + const hook = options.onParseValue(value, options.state) // onParseValue Hook + // false skips the row, configurable through a hook + if (hook !== false) { + entry.push(hook) + } + } + // console.log('value:' + value); + // reset the state + value = '' + state = 0 + // update global state + options.state.colNum++ + } + + // escape regex-specific control chars + const escSeparator = RegExp.escape(separator) + const escDelimiter = RegExp.escape(delimiter) + + // compile the regEx str using the custom delimiter/separator + let match = /(D|S|\r\n|\n|\r|[^DS\r\n]+)/ + let matchSrc = match.source + matchSrc = matchSrc.replace(/S/g, escSeparator) + matchSrc = matchSrc.replace(/D/g, escDelimiter) + match = new RegExp(matchSrc, 'gm') + + // put on your fancy pants... + // process control chars individually, use look-ahead on non-control chars + csv.replace(match, function (m0) { + if (exit) { + return + } + switch (state) { + // the start of a value + case 0: + // null last value + if (m0 === separator) { + value += '' + endOfValue() + break + } + // opening delimiter + if (m0 === delimiter) { + state = 1 + break + } + // null last value + if (/^(\r\n|\n|\r)$/.test(m0)) { + endOfValue() + endOfEntry() + break + } + // un-delimited value + value += m0 + state = 3 + break + + // delimited input + case 1: + // second delimiter? check further + if (m0 === delimiter) { + state = 2 + break + } + // delimited data + value += m0 + state = 1 + break + + // delimiter found in delimited input + case 2: + // escaped delimiter? + if (m0 === delimiter) { + value += m0 + state = 1 + break + } + // null value + if (m0 === separator) { + endOfValue() + break + } + // end of entry + if (/^(\r\n|\n|\r)$/.test(m0)) { + endOfValue() + endOfEntry() + break + } + // broken paser? + throw Error('CSVDataError: Illegal State [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + + // un-delimited input + case 3: + // null last value + if (m0 === separator) { + endOfValue() + break + } + // end of entry + if (/^(\r\n|\n|\r)$/.test(m0)) { + endOfValue() + endOfEntry() + break + } + if (m0 === delimiter) { + // non-compliant data + throw Error('CSVDataError: Illegal Quote [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + } + // broken parser? + throw Error('CSVDataError: Illegal Data [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + default: + // shenanigans + throw Error('CSVDataError: Unknown State [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + } + // console.log('val:' + m0 + ' state:' + state); + }) + + // submit the last entry + // ignore null last line + if (entry.length !== 0) { + endOfValue() + endOfEntry() + } + + return data + }, + + // a csv-specific line splitter + splitLines: function (csv, options) { + if (!csv) { + return undefined + } + + options = options || {} + + // cache settings + const separator = options.separator || $.csv.defaults.separator + const delimiter = options.delimiter || $.csv.defaults.delimiter + + // set initial state if it's missing + options.state = options.state || {} + if (!options.state.rowNum) { + options.state.rowNum = 1 + } + + // clear initial state + const entries = [] + let state = 0 + let entry = '' + let exit = false + + function endOfLine () { + // reset the state + state = 0 + + // if 'start' hasn't been met, don't output + if (options.start && options.state.rowNum < options.start) { + // update global state + entry = '' + options.state.rowNum++ + return + } + + if (options.onParseEntry === undefined) { + // onParseEntry hook not set + entries.push(entry) + } else { + const hookVal = options.onParseEntry(entry, options.state) // onParseEntry Hook + // false skips the row, configurable through a hook + if (hookVal !== false) { + entries.push(hookVal) + } + } + + // cleanup + entry = '' + + // if 'end' is met, stop parsing + if (options.end && options.state.rowNum >= options.end) { + exit = true + } + + // update global state + options.state.rowNum++ + } + + // escape regex-specific control chars + const escSeparator = RegExp.escape(separator) + const escDelimiter = RegExp.escape(delimiter) + + // compile the regEx str using the custom delimiter/separator + let match = /(D|S|\n|\r|[^DS\r\n]+)/ + let matchSrc = match.source + matchSrc = matchSrc.replace(/S/g, escSeparator) + matchSrc = matchSrc.replace(/D/g, escDelimiter) + match = new RegExp(matchSrc, 'gm') + + // put on your fancy pants... + // process control chars individually, use look-ahead on non-control chars + csv.replace(match, function (m0) { + if (exit) { + return + } + switch (state) { + // the start of a value/entry + case 0: + // null value + if (m0 === separator) { + entry += m0 + state = 0 + break + } + // opening delimiter + if (m0 === delimiter) { + entry += m0 + state = 1 + break + } + // end of line + if (m0 === '\n') { + endOfLine() + break + } + // phantom carriage return + if (/^\r$/.test(m0)) { + break + } + // un-delimit value + entry += m0 + state = 3 + break + + // delimited input + case 1: + // second delimiter? check further + if (m0 === delimiter) { + entry += m0 + state = 2 + break + } + // delimited data + entry += m0 + state = 1 + break + + // delimiter found in delimited input + case 2: { + // escaped delimiter? + const prevChar = entry.substr(entry.length - 1) + if (m0 === delimiter && prevChar === delimiter) { + entry += m0 + state = 1 + break + } + // end of value + if (m0 === separator) { + entry += m0 + state = 0 + break + } + // end of line + if (m0 === '\n') { + endOfLine() + break + } + // phantom carriage return + if (m0 === '\r') { + break + } + // broken paser? + throw Error('CSVDataError: Illegal state [Row:' + options.state.rowNum + ']') + } + // un-delimited input + case 3: + // null value + if (m0 === separator) { + entry += m0 + state = 0 + break + } + // end of line + if (m0 === '\n') { + endOfLine() + break + } + // phantom carriage return + if (m0 === '\r') { + break + } + // non-compliant data + if (m0 === delimiter) { + throw Error('CSVDataError: Illegal quote [Row:' + options.state.rowNum + ']') + } + // broken parser? + throw Error('CSVDataError: Illegal state [Row:' + options.state.rowNum + ']') + default: + // shenanigans + throw Error('CSVDataError: Unknown state [Row:' + options.state.rowNum + ']') + } + // console.log('val:' + m0 + ' state:' + state); + }) + + // submit the last entry + // ignore null last line + if (entry !== '') { + endOfLine() + } + + return entries + }, + + // a csv entry parser + parseEntry: function (csv, options) { + // cache settings + const separator = options.separator + const delimiter = options.delimiter + + // set initial state if it's missing + if (!options.state.rowNum) { + options.state.rowNum = 1 + } + if (!options.state.colNum) { + options.state.colNum = 1 + } + + // clear initial state + const entry = [] + let state = 0 + let value = '' + + function endOfValue () { + if (options.onParseValue === undefined) { + // onParseValue hook not set + entry.push(value) + } else { + const hook = options.onParseValue(value, options.state) // onParseValue Hook + // false skips the value, configurable through a hook + if (hook !== false) { + entry.push(hook) + } + } + // reset the state + value = '' + state = 0 + // update global state + options.state.colNum++ + } + + // checked for a cached regEx first + if (!options.match) { + // escape regex-specific control chars + const escSeparator = RegExp.escape(separator) + const escDelimiter = RegExp.escape(delimiter) + + // compile the regEx str using the custom delimiter/separator + const match = /(D|S|\n|\r|[^DS\r\n]+)/ + let matchSrc = match.source + matchSrc = matchSrc.replace(/S/g, escSeparator) + matchSrc = matchSrc.replace(/D/g, escDelimiter) + options.match = new RegExp(matchSrc, 'gm') + } + + // put on your fancy pants... + // process control chars individually, use look-ahead on non-control chars + csv.replace(options.match, function (m0) { + switch (state) { + // the start of a value + case 0: + // null last value + if (m0 === separator) { + value += '' + endOfValue() + break + } + // opening delimiter + if (m0 === delimiter) { + state = 1 + break + } + // skip un-delimited new-lines + if (m0 === '\n' || m0 === '\r') { + break + } + // un-delimited value + value += m0 + state = 3 + break + + // delimited input + case 1: + // second delimiter? check further + if (m0 === delimiter) { + state = 2 + break + } + // delimited data + value += m0 + state = 1 + break + + // delimiter found in delimited input + case 2: + // escaped delimiter? + if (m0 === delimiter) { + value += m0 + state = 1 + break + } + // null value + if (m0 === separator) { + endOfValue() + break + } + // skip un-delimited new-lines + if (m0 === '\n' || m0 === '\r') { + break + } + // broken paser? + throw Error('CSVDataError: Illegal State [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + + // un-delimited input + case 3: + // null last value + if (m0 === separator) { + endOfValue() + break + } + // skip un-delimited new-lines + if (m0 === '\n' || m0 === '\r') { + break + } + // non-compliant data + if (m0 === delimiter) { + throw Error('CSVDataError: Illegal Quote [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + } + // broken parser? + throw Error('CSVDataError: Illegal Data [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + default: + // shenanigans + throw Error('CSVDataError: Unknown State [Row:' + options.state.rowNum + '][Col:' + options.state.colNum + ']') + } + // console.log('val:' + m0 + ' state:' + state); + }) + + // submit the last value + endOfValue() + + return entry + } + }, + + helpers: { + + /** + * $.csv.helpers.collectPropertyNames(objectsArray) + * Collects all unique property names from all passed objects. + * + * @param {Array} objects Objects to collect properties from. + * + * Returns an array of property names (array will be empty, + * if objects have no own properties). + */ + collectPropertyNames: function (objects) { + let o = [] + let propName = [] + const props = [] + for (o in objects) { + for (propName in objects[o]) { + if ((objects[o].hasOwnProperty(propName)) && + (props.indexOf(propName) < 0) && + (typeof objects[o][propName] !== 'function')) { + props.push(propName) + } + } + } + return props + } + }, + + /** + * $.csv.toArray(csv) + * Converts a CSV entry string to a javascript array. + * + * @param {Array} csv The string containing the CSV data. + * @param {Object} [options] An object containing user-defined options. + * @param {Character} [separator] An override for the separator character. Defaults to a comma(,). + * @param {Character} [delimiter] An override for the delimiter character. Defaults to a double-quote("). + * + * This method deals with simple CSV strings only. It's useful if you only + * need to parse a single entry. If you need to parse more than one line, + * use $.csv2Array instead. + */ + toArray: function (csv, options, callback) { + // if callback was passed to options swap callback with options + if (options !== undefined && typeof (options) === 'function') { + if (callback !== undefined) { + return console.error('You cannot 3 arguments with the 2nd argument being a function') + } + callback = options + options = {} + } + + options = (options !== undefined ? options : {}) + const config = {} + config.callback = ((callback !== undefined && typeof (callback) === 'function') ? callback : false) + config.separator = 'separator' in options ? options.separator : $.csv.defaults.separator + config.delimiter = 'delimiter' in options ? options.delimiter : $.csv.defaults.delimiter + const state = (options.state !== undefined ? options.state : {}) + + // setup + options = { + delimiter: config.delimiter, + separator: config.separator, + onParseEntry: options.onParseEntry, + onParseValue: options.onParseValue, + state: state + } + + const entry = $.csv.parsers.parseEntry(csv, options) + + // push the value to a callback if one is defined + if (!config.callback) { + return entry + } else { + config.callback('', entry) + } + }, + + /** + * $.csv.toArrays(csv) + * Converts a CSV string to a javascript array. + * + * @param {String} csv The string containing the raw CSV data. + * @param {Object} [options] An object containing user-defined options. + * @param {Character} [separator] An override for the separator character. Defaults to a comma(,). + * @param {Character} [delimiter] An override for the delimiter character. Defaults to a double-quote("). + * + * This method deals with multi-line CSV. The breakdown is simple. The first + * dimension of the array represents the line (or entry/row) while the second + * dimension contains the values (or values/columns). + */ + toArrays: function (csv, options, callback) { + // if callback was passed to options swap callback with options + if (options !== undefined && typeof (options) === 'function') { + if (callback !== undefined) { + return console.error('You cannot 3 arguments with the 2nd argument being a function') + } + callback = options + options = {} + } + + options = (options !== undefined ? options : {}) + const config = {} + config.callback = ((callback !== undefined && typeof (callback) === 'function') ? callback : false) + config.separator = 'separator' in options ? options.separator : $.csv.defaults.separator + config.delimiter = 'delimiter' in options ? options.delimiter : $.csv.defaults.delimiter + + // setup + let data = [] + options = { + delimiter: config.delimiter, + separator: config.separator, + onPreParse: options.onPreParse, + onParseEntry: options.onParseEntry, + onParseValue: options.onParseValue, + onPostParse: options.onPostParse, + start: options.start, + end: options.end, + state: { + rowNum: 1, + colNum: 1 + } + } + + // onPreParse hook + if (options.onPreParse !== undefined) { + csv = options.onPreParse(csv, options.state) + } + + // parse the data + data = $.csv.parsers.parse(csv, options) + + // onPostParse hook + if (options.onPostParse !== undefined) { + data = options.onPostParse(data, options.state) + } + + // push the value to a callback if one is defined + if (!config.callback) { + return data + } else { + config.callback('', data) + } + }, + + /** + * $.csv.toObjects(csv) + * Converts a CSV string to a javascript object. + * @param {String} csv The string containing the raw CSV data. + * @param {Object} [options] An object containing user-defined options. + * @param {Character} [separator] An override for the separator character. Defaults to a comma(,). + * @param {Character} [delimiter] An override for the delimiter character. Defaults to a double-quote("). + * @param {Boolean} [headers] Indicates whether the data contains a header line. Defaults to true. + * + * This method deals with multi-line CSV strings. Where the headers line is + * used as the key for each value per entry. + */ + toObjects: function (csv, options, callback) { + // if callback was passed to options swap callback with options + if (options !== undefined && typeof (options) === 'function') { + if (callback !== undefined) { + return console.error('You cannot 3 arguments with the 2nd argument being a function') + } + callback = options + options = {} + } + + options = (options !== undefined ? options : {}) + const config = {} + config.callback = ((callback !== undefined && typeof (callback) === 'function') ? callback : false) + config.separator = 'separator' in options ? options.separator : $.csv.defaults.separator + config.delimiter = 'delimiter' in options ? options.delimiter : $.csv.defaults.delimiter + config.headers = 'headers' in options ? options.headers : $.csv.defaults.headers + options.start = 'start' in options ? options.start : 1 + + // account for headers + if (config.headers) { + options.start++ + } + if (options.end && config.headers) { + options.end++ + } + + // setup + let lines = [] + let data = [] + + options = { + delimiter: config.delimiter, + separator: config.separator, + onPreParse: options.onPreParse, + onParseEntry: options.onParseEntry, + onParseValue: options.onParseValue, + onPostParse: options.onPostParse, + start: options.start, + end: options.end, + state: { + rowNum: 1, + colNum: 1 + }, + match: false, + transform: options.transform + } + + // fetch the headers + const headerOptions = { + delimiter: config.delimiter, + separator: config.separator, + start: 1, + end: 1, + state: { + rowNum: 1, + colNum: 1 + }, + headers: true + } + + // onPreParse hook + if (options.onPreParse !== undefined) { + csv = options.onPreParse(csv, options.state) + } + + // parse the csv + const headerLine = $.csv.parsers.splitLines(csv, headerOptions) + const headers = $.csv.toArray(headerLine[0], headerOptions) + + // fetch the data + lines = $.csv.parsers.splitLines(csv, options) + + // reset the state for re-use + options.state.colNum = 1 + if (headers) { + options.state.rowNum = 2 + } else { + options.state.rowNum = 1 + } + + // convert data to objects + for (let i = 0, len = lines.length; i < len; i++) { + const entry = $.csv.toArray(lines[i], options) + const object = {} + for (let j = 0; j < headers.length; j++) { + object[headers[j]] = entry[j] + } + if (options.transform !== undefined) { + data.push(options.transform.call(undefined, object)) + } else { + data.push(object) + } + + // update row state + options.state.rowNum++ + } + + // onPostParse hook + if (options.onPostParse !== undefined) { + data = options.onPostParse(data, options.state) + } + + // push the value to a callback if one is defined + if (!config.callback) { + return data + } else { + config.callback('', data) + } + }, + + /** + * $.csv.fromArrays(arrays) + * Converts a javascript array to a CSV String. + * + * @param {Array} arrays An array containing an array of CSV entries. + * @param {Object} [options] An object containing user-defined options. + * @param {Character} [separator] An override for the separator character. Defaults to a comma(,). + * @param {Character} [delimiter] An override for the delimiter character. Defaults to a double-quote("). + * + * This method generates a CSV file from an array of arrays (representing entries). + */ + fromArrays: function (arrays, options, callback) { + // if callback was passed to options swap callback with options + if (options !== undefined && typeof (options) === 'function') { + if (callback !== undefined) { + return console.error('You cannot 3 arguments with the 2nd argument being a function') + } + callback = options + options = {} + } + + options = (options !== undefined ? options : {}) + const config = {} + config.callback = ((callback !== undefined && typeof (callback) === 'function') ? callback : false) + config.separator = 'separator' in options ? options.separator : $.csv.defaults.separator + config.delimiter = 'delimiter' in options ? options.delimiter : $.csv.defaults.delimiter + + let output = '' + + for (let i = 0; i < arrays.length; i++) { + const line = arrays[i] + const lineValues = [] + for (let j = 0; j < line.length; j++) { + let strValue = (line[j] === undefined || line[j] === null) ? '' : line[j].toString() + if (strValue.indexOf(config.delimiter) > -1) { + strValue = strValue.replace(new RegExp(config.delimiter, 'g'), config.delimiter + config.delimiter) + } + + let escMatcher = '\n|\r|S|D' + escMatcher = escMatcher.replace('S', config.separator) + escMatcher = escMatcher.replace('D', config.delimiter) + + if (strValue.search(escMatcher) > -1) { + strValue = config.delimiter + strValue + config.delimiter + } + lineValues.push(strValue) + } + output += lineValues.join(config.separator) + '\n' + } + + // push the value to a callback if one is defined + if (!config.callback) { + return output + } else { + config.callback('', output) + } + }, + + /** + * $.csv.fromObjects(objects) + * Converts a javascript dictionary to a CSV string. + * + * @param {Object} objects An array of objects containing the data. + * @param {Object} [options] An object containing user-defined options. + * @param {Character} [separator] An override for the separator character. Defaults to a comma(,). + * @param {Character} [delimiter] An override for the delimiter character. Defaults to a double-quote("). + * @param {Character} [sortOrder] Sort order of columns (named after + * object properties). Use 'alpha' for alphabetic. Default is 'declare', + * which means, that properties will _probably_ appear in order they were + * declared for the object. But without any guarantee. + * @param {Character or Array} [manualOrder] Manually order columns. May be + * a strin in a same csv format as an output or an array of header names + * (array items won't be parsed). All the properties, not present in + * `manualOrder` will be appended to the end in accordance with `sortOrder` + * option. So the `manualOrder` always takes preference, if present. + * + * This method generates a CSV file from an array of objects (name:value pairs). + * It starts by detecting the headers and adding them as the first line of + * the CSV file, followed by a structured dump of the data. + */ + fromObjects: function (objects, options, callback) { + // if callback was passed to options swap callback with options + if (options !== undefined && typeof (options) === 'function') { + if (callback !== undefined) { + return console.error('You cannot 3 arguments with the 2nd argument being a function') + } + callback = options + options = {} + } + + options = (options !== undefined ? options : {}) + const config = {} + config.callback = ((callback !== undefined && typeof (callback) === 'function') ? callback : false) + config.separator = 'separator' in options ? options.separator : $.csv.defaults.separator + config.delimiter = 'delimiter' in options ? options.delimiter : $.csv.defaults.delimiter + config.headers = 'headers' in options ? options.headers : $.csv.defaults.headers + config.sortOrder = 'sortOrder' in options ? options.sortOrder : 'declare' + config.manualOrder = 'manualOrder' in options ? options.manualOrder : [] + config.transform = options.transform + + if (typeof config.manualOrder === 'string') { + config.manualOrder = $.csv.toArray(config.manualOrder, config) + } + + if (config.transform !== undefined) { + const origObjects = objects + objects = [] + + for (let i = 0; i < origObjects.length; i++) { + objects.push(config.transform.call(undefined, origObjects[i])) + } + } + + let props = $.csv.helpers.collectPropertyNames(objects) + + if (config.sortOrder === 'alpha') { + props.sort() + } + + if (config.manualOrder.length > 0) { + const propsManual = [].concat(config.manualOrder) + + for (let p = 0; p < props.length; p++) { + if (propsManual.indexOf(props[p]) < 0) { + propsManual.push(props[p]) + } + } + props = propsManual + } + + let line + const output = [] + let propName + if (config.headers) { + output.push(props) + } + + for (let o = 0; o < objects.length; o++) { + line = [] + for (let p = 0; p < props.length; p++) { + propName = props[p] + if (propName in objects[o] && typeof objects[o][propName] !== 'function') { + line.push(objects[o][propName]) + } else { + line.push('') + } + } + output.push(line) + } + + // push the value to a callback if one is defined + return $.csv.fromArrays(output, options, config.callback) + } + } + + // Maintenance code to maintain backward-compatibility + // Will be removed in release 1.0 + $.csvEntry2Array = $.csv.toArray + $.csv2Array = $.csv.toArrays + $.csv2Dictionary = $.csv.toObjects + + // CommonJS module is defined + if (typeof module !== 'undefined' && module.exports) { + module.exports = $.csv + } + }).call(this) + \ No newline at end of file diff --git a/map.js b/map.js new file mode 100644 index 0000000..fdcc311 --- /dev/null +++ b/map.js @@ -0,0 +1,59 @@ + +(async () =>{ +var db2 = await createDb('route2') +const value = db2.all +console.log(value) +//loadRoute('route2') +//loadRoute('route2') + +console.log(Object.keys(value)) +console.log(Object.values(value)) +var coordinates = Object.values(value) +var mystring = coordinates.toString() +console.log(mystring) +var hope = mystring.split("/") +console.log(typeof(hope)) +//console.log(hope) +var my2string = hope.toString() +var comma = my2string.split(',') +console.log("this is comma:"+comma) +console.log(comma) + +var newArray =[]; +for (var i = 0; i < comma.length; i++) { + var plus = 1 + //var newArray = [[]]; + //newArray[i] += [comma[i], comma[i+plus] ] + var increment = i+1; + console.log(i) + console.log("increment" +increment) + newArray.push([comma[i], comma[increment]]) + increment = increment+1 + i = i+1 + //newArray[i][i+plus] +=comma[i+plus] +} +console.log(newArray); +var map = L.map('map').setView([49.416075235, 8.6722049], 13); + L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + zoom: 44, + attribution: '© OpenStreetMap' + +}).addTo(map); + +var polyline = L.polyline(newArray, {color: 'red'}).addTo(map); +map.fitBounds(polyline.getBounds()); +//connectDB('route2') + +})(); + + + + + L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map); + //var marker = L.marker([49.41607523,8.67220049]).addTo(map); + var polyline = L.polyline(newArray, {color: 'red'}).addTo(map); + map.fitBounds(polyline.getBounds()); + + + + diff --git a/new.csv b/new.csv new file mode 100644 index 0000000..bd3d7ec --- /dev/null +++ b/new.csv @@ -0,0 +1,87 @@ +time,lat,lon +2022-07-01T10:49:07.000Z,49.41185089/8.67646861 +2022-07-01T10:49:12.660Z,49.41166303/8.67652893 +2022-07-01T10:49:20.000Z,49.41123636/8.67652849 +2022-07-01T10:49:25.693Z,49.41084041/8.67651128 +2022-07-01T10:49:31.870Z,49.41049801/8.67656948 +2022-07-01T10:49:38.053Z,49.4102198/8.67658131 +2022-07-01T10:49:44.222Z,49.40982577/8.67668618 +2022-07-01T10:49:50.379Z,49.4095211/8.6767495 +2022-07-01T10:49:59.000Z,49.40881224/8.67658343 +2022-07-01T10:50:06.000Z,49.4083738/8.67664092 +2022-07-01T10:50:13.000Z,49.4080936/8.676667 +2022-07-01T10:50:20.000Z,49.40797358/8.67662421 +2022-07-01T10:50:27.000Z,49.40791573/8.67663151 +2022-07-01T10:50:32.673Z,49.40795257/8.6766228 +2022-07-01T10:50:41.000Z,49.40798433/8.67665855 +2022-07-01T10:50:46.645Z,49.4079701/8.67669428 +2022-07-01T10:50:52.804Z,49.40799444/8.67669857 +2022-07-01T10:51:01.000Z,49.40789121/8.6766631 +2022-07-01T10:51:08.000Z,49.40755973/8.67658864 +2022-07-01T10:51:17.000Z,49.40689473/8.67677555 +2022-07-01T10:51:25.000Z,49.40620921/8.67697955 +2022-07-01T10:51:33.000Z,49.40555543/8.67708163 +2022-07-01T10:51:42.000Z,49.40499466/8.67692979 +2022-07-01T10:51:47.669Z,49.40458895/8.67694948 +2022-07-01T10:51:53.840Z,49.40416906/8.67702318 +2022-07-01T10:52:00.005Z,49.40382355/8.67724113 +2022-07-01T10:52:06.176Z,49.40350553/8.67751751 +2022-07-01T10:52:12.341Z,49.40314888/8.67785638 +2022-07-01T10:52:18.508Z,49.40273859/8.67812989 +2022-07-01T10:52:24.674Z,49.40232416/8.67848992 +2022-07-01T10:52:30.833Z,49.40220921/8.67911913 +2022-07-01T10:52:36.988Z,49.40197856/8.67962545 +2022-07-01T10:52:45.000Z,49.40163851/8.68023891 +2022-07-01T10:52:50.662Z,49.40129879/8.68054592 +2022-07-01T10:53:07.000Z,49.40050412/8.68132096 +2022-07-01T10:53:12.700Z,49.40034406/8.68167395 +2022-07-01T10:53:20.000Z,49.40029889/8.68197948 +2022-07-01T10:53:27.000Z,49.4000934/8.68233753 +2022-07-01T10:53:34.000Z,49.39977873/8.68282787 +2022-07-01T10:53:39.676Z,49.39954051/8.68310713 +2022-07-01T10:53:45.836Z,49.39926802/8.68338566 +2022-07-01T10:53:52.006Z,49.39909119/8.68379701 +2022-07-01T10:54:00.000Z,49.39877088/8.68459149 +2022-07-01T10:54:05.692Z,49.39865451/8.68498273 +2022-07-01T10:54:13.000Z,49.39838235/8.68510378 +2022-07-01T10:54:20.000Z,49.39808397/8.6851097 +2022-07-01T10:54:25.684Z,49.39778037/8.68529797 +2022-07-01T10:54:33.000Z,49.39735536/8.6855275 +2022-07-01T10:54:40.000Z,49.39701056/8.68558536 +2022-07-01T10:54:49.000Z,49.39683103/8.6859003 +2022-07-01T10:54:56.000Z,49.39672644/8.68651683 +2022-07-01T10:55:03.000Z,49.3964463/8.68696265 +2022-07-01T10:55:12.000Z,49.39620133/8.68741868 +2022-07-01T10:55:19.000Z,49.39597341/8.6874125 +2022-07-01T10:55:29.000Z,49.39537879/8.68760769 +2022-07-01T10:55:37.000Z,49.3949609/8.68750202 +2022-07-01T10:55:48.000Z,49.39423945/8.6877149 +2022-07-01T10:55:55.000Z,49.39378364/8.68773376 +2022-07-01T10:56:03.000Z,49.39340213/8.68778782 +2022-07-01T10:56:10.000Z,49.39303098/8.68791288 +2022-07-01T10:56:15.653Z,49.39268479/8.68795369 +2022-07-01T10:56:21.852Z,49.39248838/8.68813889 +2022-07-01T10:56:28.021Z,49.3921367/8.68808023 +2022-07-01T10:56:34.192Z,49.39168962/8.68813309 +2022-07-01T10:56:43.000Z,49.39117231/8.68814905 +2022-07-01T10:56:50.000Z,49.39076199/8.68818273 +2022-07-01T10:56:59.000Z,49.39058452/8.68776805 +2022-07-01T10:57:04.656Z,49.39048152/8.68746322 +2022-07-01T10:57:10.827Z,49.39009475/8.68742468 +2022-07-01T10:57:18.000Z,49.38966856/8.68741891 +2022-07-01T10:57:26.000Z,49.3896966/8.68683682 +2022-07-01T10:57:34.000Z,49.38985798/8.68647962 +2022-07-01T11:00:12.000Z,49.38983544/8.68654936 +2022-07-01T11:00:19.000Z,49.38982943/8.68686349 +2022-07-01T11:00:24.649Z,49.38988557/8.68711804 +2022-07-01T11:00:32.000Z,49.38975355/8.68742027 +2022-07-01T11:00:39.000Z,49.38968475/8.68789061 +2022-07-01T11:00:47.000Z,49.38968741/8.68864464 +2022-07-01T11:00:56.000Z,49.38981096/8.68935897 +2022-07-01T11:01:03.000Z,49.38991498/8.6898232 +2022-07-01T11:01:13.000Z,49.39008687/8.69005123 +2022-07-01T11:01:20.000Z,49.39012705/8.69004198 +2022-07-01T11:01:42.000Z,49.39012273/8.69044973 +2022-07-01T11:03:13.000Z,49.39020013/8.69013153 +2022-07-01T11:03:37.000Z,49.3902416/8.69011779 +2022-07-01T11:06:03.000Z,49.39010871/8.68987621 diff --git a/new.csv~ b/new.csv~ new file mode 100644 index 0000000..9d4ed72 --- /dev/null +++ b/new.csv~ @@ -0,0 +1,87 @@ +time,lat,lon +2022-07-01T10:49:07.000Z,49.41185089,8.67646861 +2022-07-01T10:49:12.660Z,49.41166303,8.67652893 +2022-07-01T10:49:20.000Z,49.41123636,8.67652849 +2022-07-01T10:49:25.693Z,49.41084041,8.67651128 +2022-07-01T10:49:31.870Z,49.41049801,8.67656948 +2022-07-01T10:49:38.053Z,49.4102198,8.67658131 +2022-07-01T10:49:44.222Z,49.40982577,8.67668618 +2022-07-01T10:49:50.379Z,49.4095211,8.6767495 +2022-07-01T10:49:59.000Z,49.40881224,8.67658343 +2022-07-01T10:50:06.000Z,49.4083738,8.67664092 +2022-07-01T10:50:13.000Z,49.4080936,8.676667 +2022-07-01T10:50:20.000Z,49.40797358,8.67662421 +2022-07-01T10:50:27.000Z,49.40791573,8.67663151 +2022-07-01T10:50:32.673Z,49.40795257,8.6766228 +2022-07-01T10:50:41.000Z,49.40798433,8.67665855 +2022-07-01T10:50:46.645Z,49.4079701,8.67669428 +2022-07-01T10:50:52.804Z,49.40799444,8.67669857 +2022-07-01T10:51:01.000Z,49.40789121,8.6766631 +2022-07-01T10:51:08.000Z,49.40755973,8.67658864 +2022-07-01T10:51:17.000Z,49.40689473,8.67677555 +2022-07-01T10:51:25.000Z,49.40620921,8.67697955 +2022-07-01T10:51:33.000Z,49.40555543,8.67708163 +2022-07-01T10:51:42.000Z,49.40499466,8.67692979 +2022-07-01T10:51:47.669Z,49.40458895,8.67694948 +2022-07-01T10:51:53.840Z,49.40416906,8.67702318 +2022-07-01T10:52:00.005Z,49.40382355,8.67724113 +2022-07-01T10:52:06.176Z,49.40350553,8.67751751 +2022-07-01T10:52:12.341Z,49.40314888,8.67785638 +2022-07-01T10:52:18.508Z,49.40273859,8.67812989 +2022-07-01T10:52:24.674Z,49.40232416,8.67848992 +2022-07-01T10:52:30.833Z,49.40220921,8.67911913 +2022-07-01T10:52:36.988Z,49.40197856,8.67962545 +2022-07-01T10:52:45.000Z,49.40163851,8.68023891 +2022-07-01T10:52:50.662Z,49.40129879,8.68054592 +2022-07-01T10:53:07.000Z,49.40050412,8.68132096 +2022-07-01T10:53:12.700Z,49.40034406,8.68167395 +2022-07-01T10:53:20.000Z,49.40029889,8.68197948 +2022-07-01T10:53:27.000Z,49.4000934,8.68233753 +2022-07-01T10:53:34.000Z,49.39977873,8.68282787 +2022-07-01T10:53:39.676Z,49.39954051,8.68310713 +2022-07-01T10:53:45.836Z,49.39926802,8.68338566 +2022-07-01T10:53:52.006Z,49.39909119,8.68379701 +2022-07-01T10:54:00.000Z,49.39877088,8.68459149 +2022-07-01T10:54:05.692Z,49.39865451,8.68498273 +2022-07-01T10:54:13.000Z,49.39838235,8.68510378 +2022-07-01T10:54:20.000Z,49.39808397,8.6851097 +2022-07-01T10:54:25.684Z,49.39778037,8.68529797 +2022-07-01T10:54:33.000Z,49.39735536,8.6855275 +2022-07-01T10:54:40.000Z,49.39701056,8.68558536 +2022-07-01T10:54:49.000Z,49.39683103,8.6859003 +2022-07-01T10:54:56.000Z,49.39672644,8.68651683 +2022-07-01T10:55:03.000Z,49.3964463,8.68696265 +2022-07-01T10:55:12.000Z,49.39620133,8.68741868 +2022-07-01T10:55:19.000Z,49.39597341,8.6874125 +2022-07-01T10:55:29.000Z,49.39537879,8.68760769 +2022-07-01T10:55:37.000Z,49.3949609,8.68750202 +2022-07-01T10:55:48.000Z,49.39423945,8.6877149 +2022-07-01T10:55:55.000Z,49.39378364,8.68773376 +2022-07-01T10:56:03.000Z,49.39340213,8.68778782 +2022-07-01T10:56:10.000Z,49.39303098,8.68791288 +2022-07-01T10:56:15.653Z,49.39268479,8.68795369 +2022-07-01T10:56:21.852Z,49.39248838,8.68813889 +2022-07-01T10:56:28.021Z,49.3921367,8.68808023 +2022-07-01T10:56:34.192Z,49.39168962,8.68813309 +2022-07-01T10:56:43.000Z,49.39117231,8.68814905 +2022-07-01T10:56:50.000Z,49.39076199,8.68818273 +2022-07-01T10:56:59.000Z,49.39058452,8.68776805 +2022-07-01T10:57:04.656Z,49.39048152,8.68746322 +2022-07-01T10:57:10.827Z,49.39009475,8.68742468 +2022-07-01T10:57:18.000Z,49.38966856,8.68741891 +2022-07-01T10:57:26.000Z,49.3896966,8.68683682 +2022-07-01T10:57:34.000Z,49.38985798,8.68647962 +2022-07-01T11:00:12.000Z,49.38983544,8.68654936 +2022-07-01T11:00:19.000Z,49.38982943,8.68686349 +2022-07-01T11:00:24.649Z,49.38988557,8.68711804 +2022-07-01T11:00:32.000Z,49.38975355,8.68742027 +2022-07-01T11:00:39.000Z,49.38968475,8.68789061 +2022-07-01T11:00:47.000Z,49.38968741,8.68864464 +2022-07-01T11:00:56.000Z,49.38981096,8.68935897 +2022-07-01T11:01:03.000Z,49.38991498,8.6898232 +2022-07-01T11:01:13.000Z,49.39008687,8.69005123 +2022-07-01T11:01:20.000Z,49.39012705,8.69004198 +2022-07-01T11:01:42.000Z,49.39012273,8.69044973 +2022-07-01T11:03:13.000Z,49.39020013,8.69013153 +2022-07-01T11:03:37.000Z,49.3902416,8.69011779 +2022-07-01T11:06:03.000Z,49.39010871,8.68987621 diff --git a/test.csv b/test.csv new file mode 100755 index 0000000..be6cbab --- /dev/null +++ b/test.csv @@ -0,0 +1,87 @@ +time,lat,lon,elevation,accuracy,bearing,speed,satellites,provider,hdop,vdop,pdop,geoidheight,ageofdgpsdata,dgpsid,activity,battery,annotation,timestamp_ms,time_offset,distance,starttimestamp_ms,profile_name,battery_charging +2022-07-01T10:49:07.000Z,49.41185089,8.67646861,164.793212890625,3.216,179.8,5.44,0,gps,,,,,,,,55,,1656672547000,2022-07-01T12:49:07.000+02:00,0.0,1656672544796,Standardprofil,false +2022-07-01T10:49:12.660Z,49.41166303,8.67652893,160.7393798828125,6.432,171.7,4.8,0,gps,0.5,0.6,0.8,47.9,,,,55,,1656672552660,2022-07-01T12:49:12.660+02:00,21.340034055963667,1656672544796,Standardprofil,false +2022-07-01T10:49:20.000Z,49.41123636,8.67652849,161.337158203125,6.432,185.3,6.26,0,gps,1.1,0.9,1.4,47.9,,,,55,,1656672560000,2022-07-01T12:49:20.000+02:00,68.78358408663348,1656672544796,Standardprofil,false +2022-07-01T10:49:25.693Z,49.41084041,8.67651128,155.31097412109375,7.504,176.2,6.22,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672565693,2022-07-01T12:49:25.693+02:00,112.82881700560978,1656672544796,Standardprofil,false +2022-07-01T10:49:31.870Z,49.41049801,8.67656948,157.7611083984375,7.504,170.2,6.08,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672571870,2022-07-01T12:49:31.870+02:00,151.1340823915778,1656672544796,Standardprofil,false +2022-07-01T10:49:38.053Z,49.4102198,8.67658131,160.52813720703125,9.648001,175.0,5.88,0,gps,0.9,0.7,1.1,47.9,,,,55,,1656672578053,2022-07-01T12:49:38.053+02:00,182.0814600537094,1656672544796,Standardprofil,false +2022-07-01T10:49:44.222Z,49.40982577,8.67668618,170.07586669921875,6.432,174.2,6.77,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672584222,2022-07-01T12:49:44.222+02:00,226.54766344661743,1656672544796,Standardprofil,false +2022-07-01T10:49:50.379Z,49.4095211,8.6767495,176.42266845703125,9.648001,169.8,5.73,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672590379,2022-07-01T12:49:50.379+02:00,260.73375813453976,1656672544796,Standardprofil,false +2022-07-01T10:49:59.000Z,49.40881224,8.67658343,172.87310791015625,9.648001,160.9,7.77,10,gps,0.7,0.7,1.1,47.9,,,,55,,1656672599000,2022-07-01T12:49:59.000+02:00,340.4658819704016,1656672544796,Standardprofil,false +2022-07-01T10:50:06.000Z,49.4083738,8.67664092,168.78399658203125,8.576,172.2,4.67,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672606000,2022-07-01T12:50:06.000+02:00,389.39529840187066,1656672544796,Standardprofil,false +2022-07-01T10:50:13.000Z,49.4080936,8.676667,165.38623046875,6.432,191.0,1.81,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672613000,2022-07-01T12:50:13.000+02:00,420.6092015019477,1656672544796,Standardprofil,false +2022-07-01T10:50:20.000Z,49.40797358,8.67662421,153.93585205078125,7.504,181.3,1.8,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672620000,2022-07-01T12:50:20.000+02:00,434.3092023133824,1656672544796,Standardprofil,false +2022-07-01T10:50:27.000Z,49.40791573,8.67663151,171.08355712890625,9.648001,176.4,0.81,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672627000,2022-07-01T12:50:27.000+02:00,440.76347530339683,1656672544796,Standardprofil,false +2022-07-01T10:50:32.673Z,49.40795257,8.6766228,169.77978515625,9.648001,81.9,0.44,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672632673,2022-07-01T12:50:32.673+02:00,444.90808508192276,1656672544796,Standardprofil,false +2022-07-01T10:50:41.000Z,49.40798433,8.67665855,165.6785888671875,8.576,,0.0,12,gps,0.7,0.8,1.0,47.9,,,,55,,1656672641000,2022-07-01T12:50:41.000+02:00,449.2855378160787,1656672544796,Standardprofil,false +2022-07-01T10:50:46.645Z,49.4079701,8.67669428,167.1348876953125,9.648001,187.2,0.74,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672646645,2022-07-01T12:50:46.645+02:00,452.3164519271575,1656672544796,Standardprofil,false +2022-07-01T10:50:52.804Z,49.40799444,8.67669857,167.793701171875,9.648001,139.3,0.29,0,gps,1.0,0.8,1.3,47.9,,,,55,,1656672652804,2022-07-01T12:50:52.804+02:00,455.0406761917534,1656672544796,Standardprofil,false +2022-07-01T10:51:01.000Z,49.40789121,8.6766631,171.06378173828125,7.504,169.7,4.19,8,gps,0.9,0.8,1.2,47.9,,,,55,,1656672661000,2022-07-01T12:51:01.000+02:00,466.80270484734785,1656672544796,Standardprofil,false +2022-07-01T10:51:08.000Z,49.40755973,8.67658864,162.71923828125,8.576,191.2,4.02,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672668000,2022-07-01T12:51:08.000+02:00,504.0532207597726,1656672544796,Standardprofil,false +2022-07-01T10:51:17.000Z,49.40689473,8.67677555,161.97900390625,9.648001,174.2,10.19,10,gps,0.9,0.8,1.3,47.9,,,,55,,1656672677000,2022-07-01T12:51:17.000+02:00,579.2242819251658,1656672544796,Standardprofil,false +2022-07-01T10:51:25.000Z,49.40620921,8.67697955,157.0787353515625,8.576,166.9,8.33,8,gps,0.9,0.9,1.2,47.9,,,,55,,1656672685000,2022-07-01T12:51:25.000+02:00,656.8665037961891,1656672544796,Standardprofil,false +2022-07-01T10:51:33.000Z,49.40555543,8.67708163,168.9840087890625,9.648001,177.9,9.86,8,gps,1.1,0.9,1.4,47.9,,,,55,,1656672693000,2022-07-01T12:51:33.000+02:00,729.9377583515463,1656672544796,Standardprofil,false +2022-07-01T10:51:42.000Z,49.40499466,8.67692979,165.2921142578125,7.504,189.7,7.18,10,gps,1.0,0.8,1.3,47.9,,,,55,,1656672702000,2022-07-01T12:51:42.000+02:00,793.252994607475,1656672544796,Standardprofil,false +2022-07-01T10:51:47.669Z,49.40458895,8.67694948,168.7447509765625,9.648001,170.6,7.08,0,gps,0.8,0.8,1.1,47.9,,,,55,,1656672707669,2022-07-01T12:51:47.669+02:00,838.3883787584027,1656672544796,Standardprofil,false +2022-07-01T10:51:53.840Z,49.40416906,8.67702318,167.63067626953125,6.432,154.8,7.86,0,gps,1.2,0.8,1.4,47.9,,,,55,,1656672713840,2022-07-01T12:51:53.840+02:00,885.3815650590215,1656672544796,Standardprofil,false +2022-07-01T10:52:00.005Z,49.40382355,8.67724113,162.96783447265625,7.504,157.9,5.74,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672720005,2022-07-01T12:52:00.005+02:00,926.9112558061014,1656672544796,Standardprofil,false +2022-07-01T10:52:06.176Z,49.40350553,8.67751751,158.42529296875,8.576,145.4,7.33,0,gps,1.1,0.8,1.4,47.9,,,,55,,1656672726176,2022-07-01T12:52:06.176+02:00,967.536511168597,1656672544796,Standardprofil,false +2022-07-01T10:52:12.341Z,49.40314888,8.67785638,157.397216796875,5.36,152.5,7.16,0,gps,1.3,0.8,1.5,47.9,,,,55,,1656672732341,2022-07-01T12:52:12.341+02:00,1014.1622250937615,1656672544796,Standardprofil,false +2022-07-01T10:52:18.508Z,49.40273859,8.67812989,153.8641357421875,5.36,144.7,8.15,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672738508,2022-07-01T12:52:18.508+02:00,1063.8920579756032,1656672544796,Standardprofil,false +2022-07-01T10:52:24.674Z,49.40232416,8.67848992,161.98388671875,9.648001,145.2,8.26,0,gps,0.9,0.9,1.3,47.9,,,,55,,1656672744674,2022-07-01T12:52:24.674+02:00,1116.8285784251282,1656672544796,Standardprofil,false +2022-07-01T10:52:30.833Z,49.40220921,8.67911913,158.790283203125,9.648001,122.2,7.02,0,gps,2.4,0.9,2.5,47.9,,,,55,,1656672750833,2022-07-01T12:52:30.833+02:00,1164.1180290625236,1656672544796,Standardprofil,false +2022-07-01T10:52:36.988Z,49.40197856,8.67962545,161.365234375,7.504,126.8,7.18,0,gps,2.3,1.0,2.5,47.9,,,,55,,1656672756988,2022-07-01T12:52:36.988+02:00,1208.8400169031324,1656672544796,Standardprofil,false +2022-07-01T10:52:45.000Z,49.40163851,8.68023891,157.44244384765625,5.36,132.3,7.12,5,gps,1.5,0.9,1.8,47.9,,,,55,,1656672765000,2022-07-01T12:52:45.000+02:00,1267.151343251371,1656672544796,Standardprofil,false +2022-07-01T10:52:50.662Z,49.40129879,8.68054592,154.092529296875,9.648001,153.1,6.37,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672770662,2022-07-01T12:52:50.662+02:00,1310.9747028011654,1656672544796,Standardprofil,false +2022-07-01T10:53:07.000Z,49.40050412,8.68132096,153.906494140625,9.648001,158.6,4.78,10,gps,0.9,0.8,1.2,47.9,,,,55,,1656672787000,2022-07-01T12:53:07.000+02:00,1415.6330706674762,1656672544796,Standardprofil,false +2022-07-01T10:53:12.700Z,49.40034406,8.68167395,155.7847900390625,9.648001,127.2,4.9,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672792700,2022-07-01T12:53:12.700+02:00,1446.765286397072,1656672544796,Standardprofil,false +2022-07-01T10:53:20.000Z,49.40029889,8.68197948,141.802734375,8.576,129.9,4.18,0,gps,0.9,0.8,1.3,47.9,,,,55,,1656672800000,2022-07-01T12:53:20.000+02:00,1469.4374919545232,1656672544796,Standardprofil,false +2022-07-01T10:53:27.000Z,49.4000934,8.68233753,141.012939453125,7.504,129.6,4.44,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672807000,2022-07-01T12:53:27.000+02:00,1503.9830250057967,1656672544796,Standardprofil,false +2022-07-01T10:53:34.000Z,49.39977873,8.68282787,140.42315673828125,7.504,133.2,6.22,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672814000,2022-07-01T12:53:34.000+02:00,1553.8155602967113,1656672544796,Standardprofil,false +2022-07-01T10:53:39.676Z,49.39954051,8.68310713,139.63031005859375,8.576,126.6,6.31,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672819676,2022-07-01T12:53:39.676+02:00,1587.1326688887266,1656672544796,Standardprofil,false +2022-07-01T10:53:45.836Z,49.39926802,8.68338566,136.76104736328125,9.648001,127.7,6.2,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672825836,2022-07-01T12:53:45.836+02:00,1623.5236336178036,1656672544796,Standardprofil,false +2022-07-01T10:53:52.006Z,49.39909119,8.68379701,135.154541015625,8.576,117.7,5.37,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672832006,2022-07-01T12:53:52.006+02:00,1659.1983866658754,1656672544796,Standardprofil,false +2022-07-01T10:54:00.000Z,49.39877088,8.68459149,151.72412109375,7.504,111.4,6.57,15,gps,0.6,0.7,0.9,47.9,,,,55,,1656672840000,2022-07-01T12:54:00.000+02:00,1726.8289616121415,1656672544796,Standardprofil,false +2022-07-01T10:54:05.692Z,49.39865451,8.68498273,156.107177734375,8.576,139.1,2.47,0,gps,0.6,0.7,0.9,47.9,,,,55,,1656672845692,2022-07-01T12:54:05.692+02:00,1757.9577961166412,1656672544796,Standardprofil,false +2022-07-01T10:54:13.000Z,49.39838235,8.68510378,148.8057861328125,9.648001,162.8,5.07,0,gps,0.8,0.7,1.1,47.9,,,,55,,1656672853000,2022-07-01T12:54:13.000+02:00,1789.4628987561766,1656672544796,Standardprofil,false +2022-07-01T10:54:20.000Z,49.39808397,8.6851097,149.4029541015625,9.648001,190.4,5.89,0,gps,0.9,0.8,1.2,47.9,,,,55,,1656672860000,2022-07-01T12:54:20.000+02:00,1822.6440066516918,1656672544796,Standardprofil,false +2022-07-01T10:54:25.684Z,49.39778037,8.68529797,157.1925048828125,8.576,112.7,5.38,0,gps,1.5,0.8,1.7,47.9,,,,55,,1656672865684,2022-07-01T12:54:25.684+02:00,1859.0483636112897,1656672544796,Standardprofil,false +2022-07-01T10:54:33.000Z,49.39735536,8.6855275,166.543212890625,7.504,201.4,5.57,0,gps,1.0,0.8,1.3,47.9,,,,55,,1656672873000,2022-07-01T12:54:33.000+02:00,1909.1413715201775,1656672544796,Standardprofil,false +2022-07-01T10:54:40.000Z,49.39701056,8.68558536,165.46282958984375,6.432,172.3,4.78,0,gps,1.0,0.9,1.3,47.9,,,,55,,1656672880000,2022-07-01T12:54:40.000+02:00,1947.7093460178817,1656672544796,Standardprofil,false +2022-07-01T10:54:49.000Z,49.39683103,8.6859003,159.673095703125,8.576,78.5,5.95,13,gps,0.6,0.7,0.9,47.9,,,,55,,1656672889000,2022-07-01T12:54:49.000+02:00,1978.0072135007383,1656672544796,Standardprofil,false +2022-07-01T10:54:56.000Z,49.39672644,8.68651683,164.03118896484375,9.648001,117.9,6.34,0,gps,0.6,0.7,0.9,47.9,,,,55,,1656672896000,2022-07-01T12:54:56.000+02:00,2024.1147958844733,1656672544796,Standardprofil,false +2022-07-01T10:55:03.000Z,49.3964463,8.68696265,163.10009765625,9.648001,148.6,4.8,0,gps,0.7,0.7,1.0,47.9,,,,55,,1656672903000,2022-07-01T12:55:03.000+02:00,2068.9615821397474,1656672544796,Standardprofil,false +2022-07-01T10:55:12.000Z,49.39620133,8.68741868,162.3466796875,9.648001,144.3,3.96,13,gps,0.6,0.7,1.0,47.9,,,,54,,1656672912000,2022-07-01T12:55:12.000+02:00,2111.753204600708,1656672544796,Standardprofil,false +2022-07-01T10:55:19.000Z,49.39597341,8.6874125,165.5712890625,9.648001,195.5,5.6,0,gps,0.6,0.7,1.0,47.9,,,,54,,1656672919000,2022-07-01T12:55:19.000+02:00,2137.1006981760993,1656672544796,Standardprofil,false +2022-07-01T10:55:29.000Z,49.39537879,8.68760769,165.21795654296875,9.648001,172.8,7.66,10,gps,0.7,0.8,1.1,47.9,,,,54,,1656672929000,2022-07-01T12:55:29.000+02:00,2204.7115149032834,1656672544796,Standardprofil,false +2022-07-01T10:55:37.000Z,49.3949609,8.68750202,172.23260498046875,8.576,172.5,7.25,6,gps,1.1,0.8,1.4,47.9,,,,54,,1656672937000,2022-07-01T12:55:37.000+02:00,2251.803836528299,1656672544796,Standardprofil,false +2022-07-01T10:55:48.000Z,49.39423945,8.6877149,177.05401611328125,8.576,175.4,6.57,10,gps,0.8,0.8,1.1,47.9,,,,54,,1656672948000,2022-07-01T12:55:48.000+02:00,2333.491384425079,1656672544796,Standardprofil,false +2022-07-01T10:55:55.000Z,49.39378364,8.68773376,176.10064697265625,9.648001,176.5,6.08,0,gps,0.8,0.8,1.1,47.9,,,,54,,1656672955000,2022-07-01T12:55:55.000+02:00,2384.193519574299,1656672544796,Standardprofil,false +2022-07-01T10:56:03.000Z,49.39340213,8.68778782,176.1510009765625,7.504,178.4,5.4,10,gps,0.7,0.7,1.0,47.9,,,,54,,1656672963000,2022-07-01T12:56:03.000+02:00,2426.7955300468543,1656672544796,Standardprofil,false +2022-07-01T10:56:10.000Z,49.39303098,8.68791288,175.6314697265625,9.648001,166.6,6.07,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656672970000,2022-07-01T12:56:10.000+02:00,2469.046354671533,1656672544796,Standardprofil,false +2022-07-01T10:56:15.653Z,49.39268479,8.68795369,177.4873046875,8.576,173.1,6.6,0,gps,1.0,0.9,1.3,47.9,,,,54,,1656672975653,2022-07-01T12:56:15.653+02:00,2507.6540680712505,1656672544796,Standardprofil,false +2022-07-01T10:56:21.852Z,49.39248838,8.68813889,164.92047119140625,6.432,166.0,5.87,0,gps,1.0,0.8,1.3,47.9,,,,54,,1656672981852,2022-07-01T12:56:21.852+02:00,2533.2789287080063,1656672544796,Standardprofil,false +2022-07-01T10:56:28.021Z,49.3921367,8.68808023,158.7437744140625,9.648001,169.9,6.92,0,gps,1.1,0.9,1.4,47.9,,,,54,,1656672988021,2022-07-01T12:56:28.021+02:00,2572.613741431788,1656672544796,Standardprofil,false +2022-07-01T10:56:34.192Z,49.39168962,8.68813309,158.1988525390625,8.576,171.1,6.26,0,gps,1.0,0.9,1.3,47.9,,,,54,,1656672994192,2022-07-01T12:56:34.192+02:00,2622.473758685886,1656672544796,Standardprofil,false +2022-07-01T10:56:43.000Z,49.39117231,8.68814905,152.85247802734375,7.504,180.9,6.71,8,gps,0.9,0.8,1.2,47.9,,,,54,,1656673003000,2022-07-01T12:56:43.000+02:00,2680.0076029923166,1656672544796,Standardprofil,false +2022-07-01T10:56:50.000Z,49.39076199,8.68818273,161.584228515625,7.504,188.0,6.64,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656673010000,2022-07-01T12:56:50.000+02:00,2725.6981762644095,1656672544796,Standardprofil,false +2022-07-01T10:56:59.000Z,49.39058452,8.68776805,154.8408203125,9.648001,279.4,5.51,9,gps,1.0,0.8,1.3,47.9,,,,54,,1656673019000,2022-07-01T12:56:59.000+02:00,2761.6176369639265,1656672544796,Standardprofil,false +2022-07-01T10:57:04.656Z,49.39048152,8.68746322,153.287353515625,9.648001,186.3,6.89,0,gps,0.9,0.8,1.3,47.9,,,,54,,1656673024656,2022-07-01T12:57:04.656+02:00,2786.4758625260642,1656672544796,Standardprofil,false +2022-07-01T10:57:10.827Z,49.39009475,8.68742468,151.33355712890625,8.576,179.0,6.6,0,gps,1.4,0.9,1.7,47.9,,,,54,,1656673030827,2022-07-01T12:57:10.827+02:00,2829.5730896704777,1656672544796,Standardprofil,false +2022-07-01T10:57:18.000Z,49.38966856,8.68741891,177.71246337890625,7.504,266.4,4.91,0,gps,1.0,0.8,1.2,47.9,,,,54,,1656673038000,2022-07-01T12:57:18.000+02:00,2876.965095528558,1656672544796,Standardprofil,false +2022-07-01T10:57:26.000Z,49.3896966,8.68683682,170.60595703125,8.576,234.0,3.67,10,gps,0.7,0.8,1.1,47.9,,,,54,,1656673046000,2022-07-01T12:57:26.000+02:00,2919.2108157627968,1656672544796,Standardprofil,false +2022-07-01T10:57:34.000Z,49.38985798,8.68647962,165.421630859375,8.576,256.8,0.9,6,gps,1.3,0.9,1.5,47.9,,,,54,,1656673054000,2022-07-01T12:57:34.000+02:00,2950.681543629,1656672544796,Standardprofil,false +2022-07-01T11:00:12.000Z,49.38983544,8.68654936,164.2235107421875,9.648001,81.5,3.51,10,gps,0.9,0.9,1.2,47.9,,,,54,,1656673212000,2022-07-01T13:00:12.000+02:00,2956.3171642923676,1656672544796,Standardprofil,false +2022-07-01T11:00:19.000Z,49.38982943,8.68686349,163.4822998046875,8.576,80.6,3.43,0,gps,0.9,0.9,1.2,47.9,,,,54,,1656673219000,2022-07-01T13:00:19.000+02:00,2979.063013246735,1656672544796,Standardprofil,false +2022-07-01T11:00:24.649Z,49.38988557,8.68711804,157.4073486328125,7.504,69.2,1.72,0,gps,0.9,0.9,1.3,47.9,,,,54,,1656673224649,2022-07-01T13:00:24.649+02:00,2998.515603181087,1656672544796,Standardprofil,false +2022-07-01T11:00:32.000Z,49.38975355,8.68742027,157.98388671875,9.648001,116.2,2.37,0,gps,0.8,0.8,1.2,47.9,,,,54,,1656673232000,2022-07-01T13:00:32.000+02:00,3024.8595835424962,1656672544796,Standardprofil,false +2022-07-01T11:00:39.000Z,49.38968475,8.68789061,158.14898681640625,8.576,90.1,5.99,0,gps,0.6,0.7,1.0,47.9,,,,54,,1656673239000,2022-07-01T13:00:39.000+02:00,3059.750840772249,1656672544796,Standardprofil,false +2022-07-01T11:00:47.000Z,49.38968741,8.68864464,156.318115234375,8.576,80.9,5.8,10,gps,0.8,0.8,1.1,47.9,,,,54,,1656673247000,2022-07-01T13:00:47.000+02:00,3114.3268166123057,1656672544796,Standardprofil,false +2022-07-01T11:00:56.000Z,49.38981096,8.68935897,158.6549072265625,9.648001,63.5,5.21,9,gps,0.8,0.8,1.2,47.9,,,,54,,1656673256000,2022-07-01T13:00:56.000+02:00,3167.8226320775525,1656672544796,Standardprofil,false +2022-07-01T11:01:03.000Z,49.38991498,8.6898232,162.62811279296875,9.648001,79.1,4.26,0,gps,0.8,0.8,1.2,47.9,,,,54,,1656673263000,2022-07-01T13:01:03.000+02:00,3203.3576563511497,1656672544796,Standardprofil,false +2022-07-01T11:01:13.000Z,49.39008687,8.69005123,140.983154296875,9.648001,11.8,1.66,11,gps,0.7,0.7,1.0,47.9,,,,54,,1656673273000,2022-07-01T13:01:13.000+02:00,3228.610542236974,1656672544796,Standardprofil,false +2022-07-01T11:01:20.000Z,49.39012705,8.69004198,148.57745361328125,9.648001,25.1,0.77,0,gps,0.7,0.7,1.0,47.9,,,,54,,1656673280000,2022-07-01T13:01:20.000+02:00,3233.128236689387,1656672544796,Standardprofil,false +2022-07-01T11:01:42.000Z,49.39012273,8.69044973,156.05230712890625,9.648001,80.0,0.5,9,gps,1.3,0.8,1.6,47.9,,,,54,,1656673302000,2022-07-01T13:01:42.000+02:00,3262.6440068575403,1656672544796,Standardprofil,false +2022-07-01T11:03:13.000Z,49.39020013,8.69013153,174.82879638671875,9.648001,184.9,0.3,12,gps,0.7,0.7,1.0,47.9,,,,52,,1656673393000,2022-07-01T13:03:13.000+02:00,3287.2300473534465,1656672544796,Standardprofil,false +2022-07-01T11:03:37.000Z,49.3902416,8.69011779,175.5267333984375,9.648001,10.0,0.42,7,gps,1.1,0.9,1.4,47.9,,,,52,,1656673417000,2022-07-01T13:03:37.000+02:00,3291.9473152030705,1656672544796,Standardprofil,false +2022-07-01T11:06:03.000Z,49.39010871,8.68987621,171.87139892578125,9.648001,,0.0,6,gps,1.2,0.9,1.5,47.9,,,,52,,1656673563000,2022-07-01T13:06:03.000+02:00,3314.8399432225724,1656672544796,Standardprofil,false++++ +Statistics
+ ++ Route X ++++++ ++ kilometers traveled + 2 Km +++ traveled time + 2 min ++ +++ +