You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
7.5 KiB

  1. // needed for instantiation of ipfs
  2. const initIPFS = async (IPFS, ORBITDB) => {
  3. // Create IPFS instance
  4. // const ipfsOptions = { repo: '/orbitdb/examples/browser/new/ipfs/0.33.1', }
  5. //const ipfs = await Ipfs.create(ipfsOptions)
  6. // Create OrbitDB instance
  7. //const orbitdb = await OrbitDB.createInstance(ipfs)
  8. }
  9. initIPFS()
  10. async function createDb(){
  11. const ipfs = await Ipfs.create({repo: 'ok' + Math.random()});
  12. // Create database instance
  13. const orbitdb = await OrbitDB.createInstance(ipfs)
  14. //const ipfsOptions = { repo: '/orbitdb/createdb1', }
  15. const db = await orbitdb.keyvalue('routes')
  16. const address = db.address
  17. console.log(address)
  18. console.log(db.address.toString())
  19. await db.put('2022-07-01T10:49:07', '49.41185089/8.67646861',{pin: true})
  20. await db.put('2022-07-01T10:49:12', '49.41166303/8.67652893')
  21. await db.put('2022-07-01T10:49:20','49.41123636/8.67652849')
  22. await db.put(' 2022-07-01T10:49:25','49.41084041/8.67651128')
  23. await db.put('2022-07-01T10:49:31','49.41049801/8.67656948')
  24. await db.put('2022-07-01T10:49:31','49.41049801/8.67656948')
  25. await db.put('2022-07-01T10:49:38','49.4102198/8.67658131')
  26. await db.put('2022-07-01T10:49:44','49.40982577/8.67668618')
  27. await db.put('2022-07-01T10:49:50','49.4095211/8.6767495')
  28. // await db.put('0000','00/00');
  29. await db.put('2022-07-01T10:56:43','49.39117231/8.68814905')
  30. await db.put('2022-07-01T10:56:50','49.39076199/8.68818273')
  31. await db.put('2022-07-01T10:56:59','49.39058452/8.68776805')
  32. await db.put('2022-07-01T10:57:04','49.39048152/8.68746322')
  33. await db.put('2022-07-01T10:57:10','49.39009475/8.68742468')
  34. await db.put('2022-07-01T10:57:18','49.38966856/8.68741891')
  35. await db.put('2022-07-01T10:57:26','49.3896966/8.68683682')
  36. await db.put('2022-07-01T10:57:34','49.38985798/8.68647962')
  37. await db.put('2022-07-01T11:00:12','49.38983544/8.68654936')
  38. await db.put('2022-07-01T11:00:19','49.38982943/8.68686349')
  39. await db.put('2022-07-01T11:00:24','49.38988557/8.68711804')
  40. await db.put('2022-07-01T11:00:32','49.38975355/8.68742027')
  41. await db.put('2022-07-01T11:00:39','49.38968475/8.68789061')
  42. await db.put('2022-07-01T11:00:47','49.38968741/8.68864464')
  43. await db.put('2022-07-01T11:00:56','49.38981096/8.68935897')
  44. await db.put('2022-07-01T11:01:03','49.38991498/8.6898232')
  45. await db.put('2022-07-01T11:01:13','49.39008687/8.69005123')
  46. await db.put('2022-07-01T11:01:20','49.39012705/8.69004198')
  47. await db.put('2022-07-01T11:01:42','49.39012273/8.69044973')
  48. await db.put('2022-07-01T11:03:13','49.39020013/8.69013153')
  49. await db.put('2022-07-01T11:03:37','49.3902416/8.69011779')
  50. await db.put('2022-07-01T11:06:03','49.39010871/8.68987621')
  51. let csv = "./new.csv"
  52. const value = db.all
  53. //console.log(value)
  54. console.log('database connected!')
  55. //console.log(value)
  56. await db.close()
  57. return db
  58. }
  59. async function loadRoute(){
  60. const db = await createDb()
  61. await db.load()
  62. console.log("loadroute ausgeführt")
  63. const value = db.all
  64. console.log(value)
  65. return value;
  66. }
  67. async function connectDB(){
  68. //const ipfsOptions = { repo: '/orbitdb/los', }
  69. //const ipfs = await Ipfs.create(ipfsOptions)
  70. const ipfs = await Ipfs.create()
  71. const orbitdb = await OrbitDB.createInstance(ipfs)
  72. const db_route2 = await orbitdb.open('/orbitdb/zdpuApZ7pMKupZjmxPQk8xp34QdAEXHFFjmA3EPWuACN88DwB/coordinates');
  73. //const route2 = db_route2.all
  74. //console.log(OrbitDB.isValidAddress('/orbitdb/zdpuAqETvwNibieag6o5ahX4d6WKXi6QZvbar3XZPJEXz3vSE/coordinates'));
  75. console.log(db_route2.all);
  76. console.log(db_route2.address.toString())
  77. return db_route2;
  78. }
  79. async function getCurrentCoordinate(){
  80. var db_conn = await createDb()
  81. const currentCoordinate = db_conn.all
  82. console.log(currentCoordinate)
  83. var latest_coord_string = (currentCoordinate[Object.keys(currentCoordinate)[Object.keys(currentCoordinate).length - 1]])
  84. var latest_coordinate_str = latest_coord_string.split("/")
  85. latest_coordinate_str[0] = parseFloat(latest_coordinate_str[0])
  86. latest_coordinate_str[1] = parseFloat(latest_coordinate_str[1])
  87. console.log(latest_coordinate_str)
  88. return latest_coordinate_str;
  89. }
  90. async function getCurrentTime(){
  91. var db_conn = await createDb()
  92. const currentCoordinate = db_conn.all
  93. //console.log(currentCoordinate)
  94. var all_times = (Object.keys(currentCoordinate))
  95. var lasttime = all_times[(all_times.length-1)]
  96. console.log(lasttime)
  97. return lasttime;
  98. }
  99. async function getAllCoordinates(){
  100. var db2 = await createDb()
  101. const all_coordinates = db2.all
  102. // coordinates in this schema 49.123/8.2311
  103. var coordinates = Object.values(all_coordinates)
  104. // parse to string for split and then split by /
  105. var coordinate_string = coordinates.toString()
  106. var between_string = coordinate_string.split("/")
  107. var final_string = between_string.toString()
  108. //comma string looks now like this : 49.1212,8.1231,49.1231, ...
  109. var comma_string = final_string.split(',')
  110. // create new Array and put string back in to array for using paths/polylines with leafleat
  111. var newArray =[];
  112. // use for loop for iterating over string and put it in the right order
  113. for (var i = 0; i < comma_string.length; i++) {
  114. var increment = i+1;
  115. newArray.push([comma_string[i], comma_string[increment]])
  116. increment = increment+1
  117. i = i+1
  118. }
  119. (function(elem) {
  120. var callee = arguments.callee;
  121. return elem instanceof Array ? elem.map(function(elem2) { return callee(elem2); })
  122. : parseFloat(elem);
  123. })
  124. newArray = newArray.map(function(elem) {
  125. return elem.map(function(elem2) {
  126. return parseFloat(elem2);
  127. });
  128. });
  129. console.log(newArray)
  130. //console.log(newArray)
  131. return newArray;
  132. }
  133. async function createRouteObject(){
  134. var currentime = await getCurrentTime()
  135. var myBtn = document.createElement("p");
  136. myBtn.innerHTML = "<ul><li><div><h4 >Last traveled Route</h4><div><p>" +currentime+"</p></div></div></li></ul>";
  137. document.ul.appendChild(myBtn);
  138. }
  139. async function createlistitem() {
  140. var currentime = await getCurrentTime();
  141. var ul = document.getElementById("list");
  142. var li = document.createElement("li");
  143. li.appendChild(document.createTextNode("Last travelled route on: " +currentime+""));
  144. ul.appendChild(li);
  145. }