biketrack-plainjs/functions.js

109 lines
3.7 KiB
JavaScript

// needed for instantiation of ipfs
const initIPFS = async (IPFS, ORBITDB) => {
// Create IPFS instance
// 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)
}
initIPFS()
async function createDb(db_name){
// Create database instance
//const ipfsOptions = { repo: '/orbitdb/createdb1', }
const ipfs = await Ipfs.create()
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')
await db.put('2022-07-01T10:49:20','49.41123636/8.67652849')
await db.put(' 2022-07-01T10:49:25','49.41084041/8.67651128')
await db.put('2022-07-01T10:49:31','49.41049801/8.67656948')
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 ipfs = await Ipfs.create()
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 getCurrentCoordinate(){
var db_conn = await createDb('coordinates')
const currentCoordinate = db_conn.all
console.log(currentCoordinate)
var latest_coord_string = (currentCoordinate[Object.keys(currentCoordinate)[Object.keys(currentCoordinate).length - 1]])
var latest_coordinate_str = latest_coord_string.split("/")
latest_coordinate_str[0] = parseFloat(latest_coordinate_str[0])
latest_coordinate_str[1] = parseFloat(latest_coordinate_str[1])
console.log(latest_coordinate_str)
return latest_coordinate_str;
}
async function getAllCoordinates(dbname){
var db2 = await createDb(dbname)
const all_coordinates = db2.all
// coordinates in this schema 49.123/8.2311
var coordinates = Object.values(all_coordinates)
// parse to string for split and then split by /
var coordinate_string = coordinates.toString()
var between_string = coordinate_string.split("/")
var final_string = between_string.toString()
//comma string looks now like this : 49.1212,8.1231,49.1231, ...
var comma_string = final_string.split(',')
// create new Array and put string back in to array for using paths/polylines with leafleat
var newArray =[];
// use for loop for iterating over string and put it in the right order
for (var i = 0; i < comma_string.length; i++) {
var increment = i+1;
newArray.push([comma_string[i], comma_string[increment]])
increment = increment+1
i = i+1
}
(function(elem) {
var callee = arguments.callee;
return elem instanceof Array ? elem.map(function(elem2) { return callee(elem2); })
: parseFloat(elem);
})
newArray = newArray.map(function(elem) {
return elem.map(function(elem2) {
return parseFloat(elem2);
});
});
//console.log(newArray)
return newArray;
}