mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 11:17:46 +00:00
Update tests
- Add full support for MobilityDB
This commit is contained in:
@@ -89,7 +89,7 @@ const fs = require('fs');
|
|||||||
*/
|
*/
|
||||||
],
|
],
|
||||||
user_fn: [
|
user_fn: [
|
||||||
{ url: '/rpc/timelapse_fn',
|
{ url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 1
|
start_log: 1
|
||||||
},
|
},
|
||||||
@@ -97,7 +97,7 @@ const fs = require('fs');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_geojson_fn',
|
{ url: '/rpc/export_logbook_geojson_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 1
|
_id: 1
|
||||||
},
|
},
|
||||||
@@ -105,7 +105,15 @@ const fs = require('fs');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_gpx_fn',
|
{ url: '/rpc/export_logbook_gpx_trip_fn',
|
||||||
|
payload: {
|
||||||
|
_id: 1
|
||||||
|
},
|
||||||
|
res: {
|
||||||
|
obj_name: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 1
|
_id: 1
|
||||||
},
|
},
|
||||||
@@ -228,15 +236,15 @@ const fs = require('fs');
|
|||||||
*/
|
*/
|
||||||
],
|
],
|
||||||
user_fn: [
|
user_fn: [
|
||||||
{ url: '/rpc/timelapse_fn',
|
{ url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 3
|
start_log: 1
|
||||||
},
|
},
|
||||||
res: {
|
res: {
|
||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_geojson_fn',
|
{ url: '/rpc/export_logbook_geojson_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 3
|
_id: 3
|
||||||
},
|
},
|
||||||
@@ -244,7 +252,15 @@ const fs = require('fs');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_gpx_fn',
|
{ url: '/rpc/export_logbook_gpx_trip_fn',
|
||||||
|
payload: {
|
||||||
|
_id: 3
|
||||||
|
},
|
||||||
|
res: {
|
||||||
|
obj_name: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 3
|
_id: 3
|
||||||
},
|
},
|
||||||
|
@@ -77,7 +77,7 @@ const metrics_simulator = require('./metrics_sample_simulator.json');
|
|||||||
*/
|
*/
|
||||||
],
|
],
|
||||||
user_fn: [
|
user_fn: [
|
||||||
{ url: '/rpc/timelapse_fn',
|
{ url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 4
|
start_log: 4
|
||||||
},
|
},
|
||||||
@@ -85,7 +85,7 @@ const metrics_simulator = require('./metrics_sample_simulator.json');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_geojson_fn',
|
{ url: '/rpc/export_logbook_geojson_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
},
|
},
|
||||||
@@ -93,7 +93,15 @@ const metrics_simulator = require('./metrics_sample_simulator.json');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_gpx_fn',
|
{ url: '/rpc/export_logbook_gpx_trip_fn',
|
||||||
|
payload: {
|
||||||
|
_id: 4
|
||||||
|
},
|
||||||
|
res: {
|
||||||
|
obj_name: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
},
|
},
|
||||||
|
@@ -79,7 +79,8 @@ var moment = require('moment');
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
user_fn: [
|
user_fn: [
|
||||||
{ url: '/rpc/timelapse_fn',
|
{ //url: '/rpc/timelapse_fn',
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 2
|
start_log: 2
|
||||||
},
|
},
|
||||||
@@ -87,7 +88,17 @@ var moment = require('moment');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_geojson_fn',
|
{ //url: '/rpc/timelapse_fn',
|
||||||
|
url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
|
payload: {
|
||||||
|
start_log: 2
|
||||||
|
},
|
||||||
|
res: {
|
||||||
|
obj_name: 'geojson'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ //url: '/rpc/export_logbook_geojson_fn',
|
||||||
|
url: '/rpc/export_logbook_geojson_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 2
|
_id: 2
|
||||||
},
|
},
|
||||||
@@ -95,7 +106,8 @@ var moment = require('moment');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_gpx_fn',
|
{ //url: '/rpc/export_logbook_gpx_fn',
|
||||||
|
url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 2
|
_id: 2
|
||||||
},
|
},
|
||||||
@@ -103,7 +115,8 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_kml_fn',
|
{ //url: '/rpc/export_logbook_kml_fn',
|
||||||
|
url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 2
|
_id: 2
|
||||||
},
|
},
|
||||||
@@ -123,6 +136,12 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{ url: '/rpc/export_moorages_kml_fn',
|
||||||
|
payload: {},
|
||||||
|
res: {
|
||||||
|
obj_name: null
|
||||||
|
}
|
||||||
|
},
|
||||||
{ url: '/rpc/find_log_from_moorage_fn',
|
{ url: '/rpc/find_log_from_moorage_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 2
|
_id: 2
|
||||||
@@ -277,7 +296,8 @@ var moment = require('moment');
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
user_fn: [
|
user_fn: [
|
||||||
{ url: '/rpc/timelapse_fn',
|
{ //url: '/rpc/timelapse_fn',
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 4
|
start_log: 4
|
||||||
},
|
},
|
||||||
@@ -285,7 +305,17 @@ var moment = require('moment');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_geojson_fn',
|
{ //url: '/rpc/timelapse_fn',
|
||||||
|
url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
|
payload: {
|
||||||
|
start_log: 4
|
||||||
|
},
|
||||||
|
res: {
|
||||||
|
obj_name: 'geojson'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ //url: '/rpc/export_logbook_geojson_fn',
|
||||||
|
url: '/rpc/export_logbook_geojson_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
},
|
},
|
||||||
@@ -293,7 +323,8 @@ var moment = require('moment');
|
|||||||
obj_name: 'geojson'
|
obj_name: 'geojson'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_gpx_fn',
|
{ //url: '/rpc/export_logbook_gpx_fn',
|
||||||
|
url: '/rpc/export_logbook_gpx_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
},
|
},
|
||||||
@@ -301,7 +332,8 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbook_kml_fn',
|
{ //url: '/rpc/export_logbook_kml_fn',
|
||||||
|
url: '/rpc/export_logbook_kml_trip_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
},
|
},
|
||||||
@@ -309,7 +341,8 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbooks_gpx_fn',
|
{ //url: '/rpc/export_logbooks_gpx_fn',
|
||||||
|
url: '/rpc/export_logbooks_kml_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 3,
|
start_log: 3,
|
||||||
end_log: 4
|
end_log: 4
|
||||||
@@ -318,7 +351,8 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ url: '/rpc/export_logbooks_kml_fn',
|
{ //url: '/rpc/export_logbooks_kml_fn',
|
||||||
|
url: '/rpc/export_logbooks_kml_trips_fn',
|
||||||
payload: {
|
payload: {
|
||||||
start_log: 3,
|
start_log: 3,
|
||||||
end_log: 4
|
end_log: 4
|
||||||
@@ -339,6 +373,12 @@ var moment = require('moment');
|
|||||||
obj_name: null
|
obj_name: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{ url: '/rpc/export_moorages_kml_fn',
|
||||||
|
payload: {},
|
||||||
|
res: {
|
||||||
|
obj_name: null
|
||||||
|
}
|
||||||
|
},
|
||||||
{ url: '/rpc/find_log_from_moorage_fn',
|
{ url: '/rpc/find_log_from_moorage_fn',
|
||||||
payload: {
|
payload: {
|
||||||
_id: 4
|
_id: 4
|
||||||
|
@@ -45,13 +45,22 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse: {
|
timelapse: {
|
||||||
url: "/rpc/timelapse_fn",
|
//url: "/rpc/timelapse_fn",
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
header: { name: "x-is-public", value: btoa("kapla,public_timelapse,1") },
|
header: { name: "x-is-public", value: btoa("kapla,public_timelapse,1") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse_full: {
|
timelapse_full: {
|
||||||
url: "/rpc/timelapse_fn",
|
//url: "/rpc/timelapse_fn",
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
|
header: { name: "x-is-public", value: btoa("kapla,public_timelapse,0") },
|
||||||
|
payload: null,
|
||||||
|
res: {},
|
||||||
|
},
|
||||||
|
replay_full: {
|
||||||
|
//url: "/rpc/timelapse_fn",
|
||||||
|
url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
header: { name: "x-is-public", value: btoa("kapla,public_timelapse,0") },
|
header: { name: "x-is-public", value: btoa("kapla,public_timelapse,0") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
@@ -69,7 +78,7 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
export_gpx: {
|
export_gpx: {
|
||||||
url: "/rpc/export_logbook_gpx_fn",
|
url: "/rpc/export_logbook_gpx_trip_fn",
|
||||||
header: { name: "x-is-public", value: btoa("kapla,public_logs,0") },
|
header: { name: "x-is-public", value: btoa("kapla,public_logs,0") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
@@ -97,13 +106,21 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse: {
|
timelapse: {
|
||||||
url: "/rpc/timelapse_fn",
|
//url: "/rpc/timelapse_fn",
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
header: { name: "x-is-public", value: btoa("aava,public_timelapse,3") },
|
header: { name: "x-is-public", value: btoa("aava,public_timelapse,3") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse_full: {
|
timelapse_full: {
|
||||||
url: "/rpc/timelapse_fn",
|
//url: "/rpc/timelapse_fn",
|
||||||
|
url: '/rpc/export_logbooks_geojson_linestring_trips_fn',
|
||||||
|
header: { name: "x-is-public", value: btoa("aava,public_timelapse,0") },
|
||||||
|
payload: null,
|
||||||
|
res: {},
|
||||||
|
},
|
||||||
|
replay_full: {
|
||||||
|
url: '/rpc/export_logbooks_geojson_point_trips_fn',
|
||||||
header: { name: "x-is-public", value: btoa("aava,public_timelapse,0") },
|
header: { name: "x-is-public", value: btoa("aava,public_timelapse,0") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
@@ -121,7 +138,7 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
export_gpx: {
|
export_gpx: {
|
||||||
url: "/rpc/export_logbook_gpx_fn",
|
url: "/rpc/export_logbook_gpx_trip_fn",
|
||||||
header: { name: "x-is-public", value: btoa("aava,public_logs,0") },
|
header: { name: "x-is-public", value: btoa("aava,public_logs,0") },
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
@@ -183,7 +200,7 @@ var moment = require("moment");
|
|||||||
done(err);
|
done(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("/rpc/timelapse_fn, api_anonymous no jwt token", function (done) {
|
it("/rpc/export_logbooks_geojson_linestring_trips_fn, api_anonymous no jwt token", function (done) {
|
||||||
// Reset agent so we do not save cookies
|
// Reset agent so we do not save cookies
|
||||||
request = supertest.agent(test.cname);
|
request = supertest.agent(test.cname);
|
||||||
request
|
request
|
||||||
@@ -200,6 +217,23 @@ var moment = require("moment");
|
|||||||
done(err);
|
done(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it("/rpc/export_logbooks_geojson_point_trips_fn, api_anonymous no jwt token", function (done) {
|
||||||
|
// Reset agent so we do not save cookies
|
||||||
|
request = supertest.agent(test.cname);
|
||||||
|
request
|
||||||
|
.post(test.replay_full.url)
|
||||||
|
.set(test.replay_full.header.name, test.replay_full.header.value)
|
||||||
|
.set("Accept", "application/json")
|
||||||
|
.end(function (err, res) {
|
||||||
|
console.log(res.text);
|
||||||
|
res.status.should.equal(200); // return 404 as it is not enable in user settings.
|
||||||
|
should.exist(res.header["content-type"]);
|
||||||
|
should.exist(res.header["server"]);
|
||||||
|
res.header["content-type"].should.match(new RegExp("json", "g"));
|
||||||
|
res.header["server"].should.match(new RegExp("postgrest", "g"));
|
||||||
|
done(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
it("/rpc/export_logbook_gpx_fn, api_anonymous no jwt token", function (done) {
|
it("/rpc/export_logbook_gpx_fn, api_anonymous no jwt token", function (done) {
|
||||||
// Reset agent so we do not save cookies
|
// Reset agent so we do not save cookies
|
||||||
request = supertest.agent(test.cname);
|
request = supertest.agent(test.cname);
|
||||||
|
@@ -52,12 +52,17 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse: {
|
timelapse: {
|
||||||
url: "/rpc/timelapse_fn",
|
url: "/rpc/export_logbooks_geojson_linestring_trips_fn",
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
timelapse_full: {
|
timelapse_full: {
|
||||||
url: "/rpc/timelapse_fn",
|
url: "/rpc/export_logbooks_geojson_linestring_trips_fn",
|
||||||
|
payload: null,
|
||||||
|
res: {},
|
||||||
|
},
|
||||||
|
replay_full: {
|
||||||
|
url: "/rpc/export_logbooks_geojson_point_trips_fn",
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
@@ -72,7 +77,7 @@ var moment = require("moment");
|
|||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
export_gpx: {
|
export_gpx: {
|
||||||
url: "/rpc/export_logbook_gpx_fn",
|
url: "/rpc/export_logbook_gpx_trip_fn",
|
||||||
payload: null,
|
payload: null,
|
||||||
res: {},
|
res: {},
|
||||||
},
|
},
|
||||||
@@ -165,7 +170,7 @@ var moment = require("moment");
|
|||||||
done(err);
|
done(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("/rpc/timelapse_fn, api_anonymous no jwt token", function (done) {
|
it("/rpc/export_logbooks_geojson_linestring_trips_fn, api_anonymous no jwt token", function (done) {
|
||||||
// Reset agent so we do not save cookies
|
// Reset agent so we do not save cookies
|
||||||
request = supertest.agent(test.cname);
|
request = supertest.agent(test.cname);
|
||||||
request
|
request
|
||||||
@@ -181,7 +186,23 @@ var moment = require("moment");
|
|||||||
done(err);
|
done(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("/rpc/export_logbook_gpx_fn, api_anonymous no jwt token", function (done) {
|
it("/rpc/export_logbooks_geojson_point_trips_fn, api_anonymous no jwt token", function (done) {
|
||||||
|
// Reset agent so we do not save cookies
|
||||||
|
request = supertest.agent(test.cname);
|
||||||
|
request
|
||||||
|
.post(test.replay_full.url)
|
||||||
|
.set("Accept", "application/json")
|
||||||
|
.end(function (err, res) {
|
||||||
|
console.log(res.text);
|
||||||
|
res.status.should.equal(200);
|
||||||
|
should.exist(res.header["content-type"]);
|
||||||
|
should.exist(res.header["server"]);
|
||||||
|
res.header["content-type"].should.match(new RegExp("json", "g"));
|
||||||
|
res.header["server"].should.match(new RegExp("postgrest", "g"));
|
||||||
|
done(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it("/rpc/export_logbook_gpx_trip_fn, api_anonymous no jwt token", function (done) {
|
||||||
// Reset agent so we do not save cookies
|
// Reset agent so we do not save cookies
|
||||||
request = supertest.agent(test.cname);
|
request = supertest.agent(test.cname);
|
||||||
request
|
request
|
||||||
|
@@ -8,5 +8,8 @@
|
|||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"should": "^13.2.3",
|
"should": "^13.2.3",
|
||||||
"supertest": "^6.3.3"
|
"supertest": "^6.3.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"schemalint": "^2.0.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,10 +17,16 @@ SELECT set_config('vessel.id', :'vessel_id', false) IS NOT NULL as vessel_id;
|
|||||||
|
|
||||||
\echo 'Insert new api.logbook for badges'
|
\echo 'Insert new api.logbook for badges'
|
||||||
INSERT INTO api.logbook
|
INSERT INTO api.logbook
|
||||||
(id, active, "name", "_from", "_from_lat", "_from_lng", "_to", "_to_lat", "_to_lng", track_geom, track_geog, track_geojson, "_from_time", "_to_time", distance, duration, avg_speed, max_speed, max_wind_speed, notes, vessel_id)
|
(id, active, "name", "_from", "_from_lat", "_from_lng", "_to", "_to_lat", "_to_lng", trip, "_from_time", "_to_time", distance, duration, avg_speed, max_speed, max_wind_speed, notes, vessel_id)
|
||||||
OVERRIDING SYSTEM VALUE VALUES
|
OVERRIDING SYSTEM VALUE VALUES
|
||||||
(nextval('api.logbook_id_seq'), false, 'Tropics Zone', NULL, NULL, NULL, NULL, NULL, NULL, 'SRID=4326;LINESTRING (-63.151124640791096 14.01074681627324, -77.0912026418618 12.870995731013664)'::public.geometry, NULL, NULL, NOW(), NOW(), 123, NULL, NULL, NULL, NULL, NULL, current_setting('vessel.id', false)),
|
(nextval('api.logbook_id_seq'), false, 'Tropics Zone', NULL, NULL, NULL, NULL, NULL, NULL, 'SRID=4326;[Point(-63.151124640791096 14.01074681627324)@2025-01-01, Point(-77.0912026418618 12.870995731013664)@2025-01-02]'::public.tgeogpoint, NOW(), NOW(), 123, NULL, NULL, NULL, NULL, NULL, current_setting('vessel.id', false)),
|
||||||
(nextval('api.logbook_id_seq'), false, 'Alaska Zone', NULL, NULL, NULL, NULL, NULL, NULL, 'SRID=4326;LINESTRING (-143.5773697471158 59.4404631255976, -152.35402122385003 56.58243132943173)'::public.geometry, NULL, NULL, NOW(), NOW(), 1234, NULL, NULL, NULL, NULL, NULL, current_setting('vessel.id', false));
|
(nextval('api.logbook_id_seq'), false, 'Alaska Zone', NULL, NULL, NULL, NULL, NULL, NULL, 'SRID=4326;[Point(-143.5773697471158 59.4404631255976)@2025-01-01, Point(-152.35402122385003 56.58243132943173)@2025-01-02]'::public.tgeogpoint, NOW(), NOW(), 1234, NULL, NULL, NULL, NULL, NULL, current_setting('vessel.id', false));
|
||||||
|
|
||||||
|
-- Transform static geometry LINESTRING to mobilitydb
|
||||||
|
-- 'SRID=4326;LINESTRING (-63.151124640791096 14.01074681627324, -77.0912026418618 12.870995731013664)'::public.geometry
|
||||||
|
-- 'SRID=4326;LINESTRING (-143.5773697471158 59.4404631255976, -152.35402122385003 56.58243132943173)'::public.geometry
|
||||||
|
--SELECT ST_AsGeoJSON('SRID=4326;LINESTRING (-63.151124640791096 14.01074681627324, -77.0912026418618 12.870995731013664)'::public.geometry);
|
||||||
|
--SELECT ST_AsGeoJSON(trajectory('SRID=4326;[Point(-63.151124640791096 14.01074681627324)@2025-01-01, Point(-77.0912026418618 12.870995731013664)@2025-01-02]'::public.tgeogpoint));
|
||||||
|
|
||||||
\echo 'Set config'
|
\echo 'Set config'
|
||||||
SELECT set_config('user.email', 'demo+kapla@openplotter.cloud', false);
|
SELECT set_config('user.email', 'demo+kapla@openplotter.cloud', false);
|
||||||
@@ -51,10 +57,10 @@ SELECT
|
|||||||
|
|
||||||
\echo 'Insert new api.moorages for badges'
|
\echo 'Insert new api.moorages for badges'
|
||||||
INSERT INTO api.moorages
|
INSERT INTO api.moorages
|
||||||
(id,"name",country,stay_code,stay_duration,reference_count,latitude,longitude,geog,home_flag,notes,vessel_id)
|
(id,"name",country,stay_code,latitude,longitude,geog,home_flag,notes,vessel_id)
|
||||||
OVERRIDING SYSTEM VALUE VALUES
|
OVERRIDING SYSTEM VALUE VALUES
|
||||||
(8,'Badge Mooring Pro',NULL,3,'11 days 00:39:56.418',1,NULL,NULL,NULL,false,'Badge Mooring Pro',current_setting('vessel.id', false)),
|
(8,'Badge Mooring Pro',NULL,3,NULL,NULL,NULL,false,'Badge Mooring Pro',current_setting('vessel.id', false)),
|
||||||
(9,'Badge Anchormaster',NULL,2,'26 days 00:49:56.418',1,NULL,NULL,NULL,false,'Badge Anchormaster',current_setting('vessel.id', false));
|
(9,'Badge Anchormaster',NULL,2,NULL,NULL,NULL,false,'Badge Anchormaster',current_setting('vessel.id', false));
|
||||||
|
|
||||||
\echo 'Set config'
|
\echo 'Set config'
|
||||||
SELECT set_config('user.email', 'demo+aava@openplotter.cloud', false);
|
SELECT set_config('user.email', 'demo+aava@openplotter.cloud', false);
|
||||||
|
@@ -25,7 +25,8 @@ SELECT set_config('vessel.id', :'vessel_id', false) IS NOT NULL as vessel_id;
|
|||||||
\echo 'logbook'
|
\echo 'logbook'
|
||||||
SELECT count(*) FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
SELECT count(*) FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||||
\echo 'logbook'
|
\echo 'logbook'
|
||||||
SELECT name,_from_time IS NOT NULL AS _from_time,_to_time IS NOT NULL AS _to_time, track_geojson IS NOT NULL AS track_geojson, trajectory(trip)::geometry as track_geom, distance,duration,round(avg_speed::NUMERIC,6),max_speed,max_wind_speed,notes,extra FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
--SELECT name,_from_time IS NOT NULL AS _from_time,_to_time IS NOT NULL AS _to_time, track_geojson IS NOT NULL AS track_geojson, trajectory(trip)::geometry as track_geom, distance,duration,round(avg_speed::NUMERIC,6),max_speed,max_wind_speed,notes,extra FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||||
|
SELECT name,_from_time IS NOT NULL AS _from_time,_to_time IS NOT NULL AS _to_time, api.export_logbook_geojson_trip_fn(id) IS NOT NULL AS track_geojson, trajectory(trip)::geometry as track_geom, distance,duration,round(avg_speed::NUMERIC,6),max_speed,max_wind_speed,notes,extra FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||||
|
|
||||||
-- Test stays for user
|
-- Test stays for user
|
||||||
\echo 'stays'
|
\echo 'stays'
|
||||||
@@ -69,17 +70,28 @@ SELECT extra FROM api.logbook l WHERE id = 1 AND vessel_id = current_setting('ve
|
|||||||
SELECT api.update_logbook_observations_fn(1, '{"tags": ["tag_name"]}'::TEXT);
|
SELECT api.update_logbook_observations_fn(1, '{"tags": ["tag_name"]}'::TEXT);
|
||||||
SELECT extra FROM api.logbook l WHERE id = 1 AND vessel_id = current_setting('vessel.id', false);
|
SELECT extra FROM api.logbook l WHERE id = 1 AND vessel_id = current_setting('vessel.id', false);
|
||||||
|
|
||||||
\echo 'Check numbers of geojson properties'
|
\echo 'Check logbook geojson LineString properties'
|
||||||
SELECT jsonb_object_keys(jsonb_path_query(track_geojson, '$.features[0].properties'))
|
WITH logbook_tbl AS (
|
||||||
FROM api.logbook where id = 1 AND vessel_id = current_setting('vessel.id', false);
|
SELECT api.logbook_update_geojson_trip_fn(id) AS geojson
|
||||||
SELECT jsonb_object_keys(jsonb_path_query(track_geojson, '$.features[1].properties'))
|
FROM api.logbook WHERE id = 1 AND vessel_id = current_setting('vessel.id', false)
|
||||||
FROM api.logbook where id = 1 AND vessel_id = current_setting('vessel.id', false);
|
)
|
||||||
|
SELECT jsonb_object_keys(jsonb_path_query(geojson, '$.features[0].properties'))
|
||||||
|
FROM logbook_tbl;
|
||||||
|
\echo 'Check logbook geojson Point properties'
|
||||||
|
WITH logbook_tbl AS (
|
||||||
|
SELECT api.logbook_update_geojson_trip_fn(id) AS geojson
|
||||||
|
FROM api.logbook WHERE id = 1 AND vessel_id = current_setting('vessel.id', false)
|
||||||
|
)
|
||||||
|
SELECT jsonb_object_keys(jsonb_path_query(geojson, '$.features[1].properties'))
|
||||||
|
FROM logbook_tbl;
|
||||||
|
|
||||||
-- Check export
|
-- Check export
|
||||||
--\echo 'check logbook export fn'
|
\echo 'Check logbook export fn'
|
||||||
--SELECT api.export_logbook_geojson_fn(1);
|
--SELECT api.export_logbook_geojson_fn(1);
|
||||||
--SELECT api.export_logbook_gpx_fn(1);
|
--SELECT api.export_logbook_gpx_fn(1);
|
||||||
--SELECT api.export_logbook_kml_fn(1);
|
--SELECT api.export_logbook_kml_fn(1);
|
||||||
|
SELECT api.export_logbook_gpx_trip_fn(1) IS NOT NULL AS gpx_trip;
|
||||||
|
SELECT api.export_logbook_kml_trip_fn(1) IS NOT NULL AS kml_trip;
|
||||||
|
|
||||||
-- Check history
|
-- Check history
|
||||||
--\echo 'monitoring history fn'
|
--\echo 'monitoring history fn'
|
||||||
|
@@ -110,7 +110,7 @@ update_logbook_observations_fn | t
|
|||||||
-[ RECORD 1 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-[ RECORD 1 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
extra | {"tags": ["tag_name"], "metrics": {"propulsion.main.runTime": "PT10S"}, "observations": {"seaState": -1, "visibility": -1, "cloudCoverage": 1}, "avg_wind_speed": 14.549999999999999}
|
extra | {"tags": ["tag_name"], "metrics": {"propulsion.main.runTime": "PT10S"}, "observations": {"seaState": -1, "visibility": -1, "cloudCoverage": 1}, "avg_wind_speed": 14.549999999999999}
|
||||||
|
|
||||||
Check numbers of geojson properties
|
Check logbook geojson LineString properties
|
||||||
-[ RECORD 1 ]-----+-----------------
|
-[ RECORD 1 ]-----+-----------------
|
||||||
jsonb_object_keys | id
|
jsonb_object_keys | id
|
||||||
-[ RECORD 2 ]-----+-----------------
|
-[ RECORD 2 ]-----+-----------------
|
||||||
@@ -144,6 +144,7 @@ jsonb_object_keys | max_wind_speed
|
|||||||
-[ RECORD 16 ]----+-----------------
|
-[ RECORD 16 ]----+-----------------
|
||||||
jsonb_object_keys | _from_moorage_id
|
jsonb_object_keys | _from_moorage_id
|
||||||
|
|
||||||
|
Check logbook geojson Point properties
|
||||||
-[ RECORD 1 ]-----+-------
|
-[ RECORD 1 ]-----+-------
|
||||||
jsonb_object_keys | cog
|
jsonb_object_keys | cog
|
||||||
-[ RECORD 2 ]-----+-------
|
-[ RECORD 2 ]-----+-------
|
||||||
@@ -163,3 +164,10 @@ jsonb_object_keys | notes
|
|||||||
-[ RECORD 9 ]-----+-------
|
-[ RECORD 9 ]-----+-------
|
||||||
jsonb_object_keys | status
|
jsonb_object_keys | status
|
||||||
|
|
||||||
|
Check logbook export fn
|
||||||
|
-[ RECORD 1 ]
|
||||||
|
gpx_trip | t
|
||||||
|
|
||||||
|
-[ RECORD 1 ]
|
||||||
|
kml_trip | t
|
||||||
|
|
||||||
|
@@ -67,13 +67,18 @@ SELECT l.id, l.name, l.from, l.to, l.distance, l.duration, l._from_moorage_id, l
|
|||||||
--SELECT * FROM api.stays s;
|
--SELECT * FROM api.stays s;
|
||||||
SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.moorage_id, m.active, m.name IS NOT NULL AS name, m.latitude, m.longitude, m.geog, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.duration, m.stay_code, m.notes FROM api.stays AS m;
|
SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.moorage_id, m.active, m.name IS NOT NULL AS name, m.latitude, m.longitude, m.geog, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.duration, m.stay_code, m.notes FROM api.stays AS m;
|
||||||
|
|
||||||
\echo 'stays_view'
|
\echo 'api.stays_view'
|
||||||
--SELECT * FROM api.stays_view s;
|
--SELECT * FROM api.stays_view s;
|
||||||
SELECT m.id, m.name IS NOT NULL AS name, m.moorage, m.moorage_id, m.duration, m.stayed_at, m.stayed_at_id, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.notes FROM api.stays_view AS m;
|
SELECT m.id, m.name IS NOT NULL AS name, m.moorage, m.moorage_id, m.duration, m.stayed_at, m.stayed_at_id, m.arrived IS NOT NULL AS arrived, m.departed IS NOT NULL AS departed, m.notes FROM api.stays_view AS m;
|
||||||
|
|
||||||
\echo 'api.moorages'
|
\echo 'api.moorages'
|
||||||
--SELECT * FROM api.moorages m;
|
--SELECT * FROM api.moorages m;
|
||||||
SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.name, m.country, m.stay_code, m.stay_duration, m.reference_count, m.latitude, m.longitude, m.geog, m.home_flag, m.notes FROM api.moorages AS m;
|
--SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.name, m.country, m.stay_code, m.stay_duration, m.reference_count, m.latitude, m.longitude, m.geog, m.home_flag, m.notes FROM api.moorages AS m;
|
||||||
|
SELECT m.id, m.vessel_id IS NOT NULL AS vessel_id, m.name, m.country, m.stay_code, m.latitude, m.longitude, m.geog, m.home_flag, m.notes FROM api.moorages AS m;
|
||||||
|
|
||||||
\echo 'api.moorages_view'
|
\echo 'api.moorages_view'
|
||||||
SELECT * FROM api.moorages_view s;
|
SELECT * FROM api.moorages_view;
|
||||||
|
|
||||||
|
\echo 'api.moorage_view'
|
||||||
|
--SELECT * FROM api.moorage_view;
|
||||||
|
SELECT m.id, m.name, default_stay, m.latitude, m.longitude, m.geog, m.home, m.notes, logs_count, stays_count, stay_first_seen_id, stay_last_seen_id, stay_first_seen IS NOT NULL AS stay_first_seen, stay_last_seen IS NOT NULL AS stay_last_seen FROM api.moorage_view m;
|
||||||
|
@@ -184,7 +184,7 @@ duration | PT2M
|
|||||||
stay_code | 4
|
stay_code | 4
|
||||||
notes |
|
notes |
|
||||||
|
|
||||||
stays_view
|
api.stays_view
|
||||||
-[ RECORD 1 ]+---------------------
|
-[ RECORD 1 ]+---------------------
|
||||||
id | 2
|
id | 2
|
||||||
name | t
|
name | t
|
||||||
@@ -209,45 +209,39 @@ departed | t
|
|||||||
notes | new stay note 3
|
notes | new stay note 3
|
||||||
|
|
||||||
api.moorages
|
api.moorages
|
||||||
-[ RECORD 1 ]---+---------------------------------------------------
|
-[ RECORD 1 ]-------------------------------------------------
|
||||||
id | 1
|
id | 1
|
||||||
vessel_id | t
|
vessel_id | t
|
||||||
name | patch moorage name 3
|
name | patch moorage name 3
|
||||||
country | fi
|
country | fi
|
||||||
stay_code | 2
|
stay_code | 2
|
||||||
stay_duration | PT1M
|
latitude | 60.0776666666667
|
||||||
reference_count | 1
|
longitude | 23.5308666666667
|
||||||
latitude | 60.0776666666667
|
geog | 0101000020E6100000B9DEBBE0E687374052A938FBF0094E40
|
||||||
longitude | 23.5308666666667
|
home_flag | t
|
||||||
geog | 0101000020E6100000B9DEBBE0E687374052A938FBF0094E40
|
notes | new moorage note 3
|
||||||
home_flag | t
|
-[ RECORD 2 ]-------------------------------------------------
|
||||||
notes | new moorage note 3
|
id | 2
|
||||||
-[ RECORD 2 ]---+---------------------------------------------------
|
vessel_id | t
|
||||||
id | 2
|
name | Norra hamnen
|
||||||
vessel_id | t
|
country | fi
|
||||||
name | Norra hamnen
|
stay_code | 4
|
||||||
country | fi
|
latitude | 59.9768833333333
|
||||||
stay_code | 4
|
longitude | 23.4321
|
||||||
stay_duration | PT2M
|
geog | 0101000020E6100000029A081B9E6E3740455658830AFD4D40
|
||||||
reference_count | 2
|
home_flag | f
|
||||||
latitude | 59.9768833333333
|
notes |
|
||||||
longitude | 23.4321
|
-[ RECORD 3 ]-------------------------------------------------
|
||||||
geog | 0101000020E6100000029A081B9E6E3740455658830AFD4D40
|
id | 3
|
||||||
home_flag | f
|
vessel_id | t
|
||||||
notes |
|
name | Ekenäs
|
||||||
-[ RECORD 3 ]---+---------------------------------------------------
|
country | fi
|
||||||
id | 3
|
stay_code | 1
|
||||||
vessel_id | t
|
latitude | 59.86
|
||||||
name | Ekenäs
|
longitude | 23.3657666666667
|
||||||
country | fi
|
geog | 0101000020E6100000E84C5FE2A25D3740AE47E17A14EE4D40
|
||||||
stay_code | 1
|
home_flag | f
|
||||||
stay_duration | PT0S
|
notes |
|
||||||
reference_count | 1
|
|
||||||
latitude | 59.86
|
|
||||||
longitude | 23.3657666666667
|
|
||||||
geog | 0101000020E6100000E84C5FE2A25D3740AE47E17A14EE4D40
|
|
||||||
home_flag | f
|
|
||||||
notes |
|
|
||||||
|
|
||||||
api.moorages_view
|
api.moorages_view
|
||||||
-[ RECORD 1 ]-------+---------------------
|
-[ RECORD 1 ]-------+---------------------
|
||||||
@@ -272,3 +266,50 @@ default_stay_id | 1
|
|||||||
arrivals_departures | 1
|
arrivals_departures | 1
|
||||||
total_duration | PT0S
|
total_duration | PT0S
|
||||||
|
|
||||||
|
api.moorage_view
|
||||||
|
-[ RECORD 1 ]------+---------------------------------------------------
|
||||||
|
id | 3
|
||||||
|
name | Ekenäs
|
||||||
|
default_stay | Unknown
|
||||||
|
latitude | 59.86
|
||||||
|
longitude | 23.3657666666667
|
||||||
|
geog | 0101000020E6100000E84C5FE2A25D3740AE47E17A14EE4D40
|
||||||
|
home | f
|
||||||
|
notes |
|
||||||
|
logs_count | 1
|
||||||
|
stays_count | 0
|
||||||
|
stay_first_seen_id |
|
||||||
|
stay_last_seen_id |
|
||||||
|
stay_first_seen | f
|
||||||
|
stay_last_seen | f
|
||||||
|
-[ RECORD 2 ]------+---------------------------------------------------
|
||||||
|
id | 2
|
||||||
|
name | Norra hamnen
|
||||||
|
default_stay | Dock
|
||||||
|
latitude | 59.9768833333333
|
||||||
|
longitude | 23.4321
|
||||||
|
geog | 0101000020E6100000029A081B9E6E3740455658830AFD4D40
|
||||||
|
home | f
|
||||||
|
notes |
|
||||||
|
logs_count | 2
|
||||||
|
stays_count | 1
|
||||||
|
stay_first_seen_id | 2
|
||||||
|
stay_last_seen_id | 2
|
||||||
|
stay_first_seen | t
|
||||||
|
stay_last_seen | t
|
||||||
|
-[ RECORD 3 ]------+---------------------------------------------------
|
||||||
|
id | 1
|
||||||
|
name | patch moorage name 3
|
||||||
|
default_stay | Anchor
|
||||||
|
latitude | 60.0776666666667
|
||||||
|
longitude | 23.5308666666667
|
||||||
|
geog | 0101000020E6100000B9DEBBE0E687374052A938FBF0094E40
|
||||||
|
home | t
|
||||||
|
notes | new moorage note 3
|
||||||
|
logs_count | 1
|
||||||
|
stays_count | 1
|
||||||
|
stay_first_seen_id | 1
|
||||||
|
stay_last_seen_id | 1
|
||||||
|
stay_first_seen | t
|
||||||
|
stay_last_seen | t
|
||||||
|
|
||||||
|
@@ -26,7 +26,8 @@ SELECT set_config('vessel.id', :'vessel_id', false) IS NOT NULL as vessel_id;
|
|||||||
\echo 'logbook'
|
\echo 'logbook'
|
||||||
SELECT count(*) FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
SELECT count(*) FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||||
\echo 'logbook'
|
\echo 'logbook'
|
||||||
SELECT name,_from_time IS NOT NULL AS _from_time,_to_time IS NOT NULL AS _to_time, track_geojson IS NOT NULL AS track_geojson, track_geom, distance,duration,avg_speed,max_speed,max_wind_speed,notes,extra FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
-- track_geom and track_geojson are now dynamic from mobilitydb
|
||||||
|
SELECT name,_from_time IS NOT NULL AS _from_time, _to_time IS NOT NULL AS _to_time, trajectory(trip) AS track_geom, distance,duration,avg_speed,max_speed,max_wind_speed,notes,extra FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false) ORDER BY id ASC;
|
||||||
|
|
||||||
-- Delete logbook for user
|
-- Delete logbook for user
|
||||||
\echo 'Delete logbook for user kapla'
|
\echo 'Delete logbook for user kapla'
|
||||||
|
@@ -21,7 +21,6 @@ logbook
|
|||||||
name | patch log name 3
|
name | patch log name 3
|
||||||
_from_time | t
|
_from_time | t
|
||||||
_to_time | t
|
_to_time | t
|
||||||
track_geojson | t
|
|
||||||
track_geom | 0102000020E61000001A000000B0DEBBE0E68737404DA938FBF0094E4020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40
|
track_geom | 0102000020E61000001A000000B0DEBBE0E68737404DA938FBF0094E4020D26F5F0786374030BB270F0B094E400C6E7ED60F843740AA60545227084E40D60FC48C03823740593CE27D42074E407B39D9F322803740984C158C4A064E4091ED7C3F357E3740898BB63D54054E40A8A1208B477C37404BA3DC9059044E404C5CB4EDA17A3740C4F856115B034E40A9A44E4013793740D8F0F44A59024E40E4839ECDAA773740211FF46C56014E405408D147067637408229F03B73004E40787AA52C43743740F90FE9B7AFFF4D40F8098D4D18723740C217265305FF4D4084E82303537037409A2D464AA0FE4D4022474DCE636F37402912396A72FE4D408351499D806E374088CFB02B40FE4D4076711B0DE06D3740B356C7040FFE4D404EAC66B0BC6E374058A835CD3BFE4D40D7A3703D0A6F3740D3E10EC15EFE4D4087602F277B6E3740A779C7293AFE4D402063EE5A426E3740B5A679C729FE4D40381DEE10EC6D37409ECA7C1A0AFE4D40E2C46A06CB6B37400A43F7BF36FD4D4075931804566E3740320BDAD125FD4D409A2D464AA06E37404A5658830AFD4D40029A081B9E6E37404A5658830AFD4D40
|
||||||
distance | 7.6447
|
distance | 7.6447
|
||||||
duration | PT27M
|
duration | PT27M
|
||||||
@@ -34,7 +33,6 @@ extra | {"tags": ["tag_name"], "metrics": {"propulsion.main.runTime": "
|
|||||||
name | Norra hamnen to Ekenäs
|
name | Norra hamnen to Ekenäs
|
||||||
_from_time | t
|
_from_time | t
|
||||||
_to_time | t
|
_to_time | t
|
||||||
track_geojson | t
|
|
||||||
track_geom | 0102000020E610000013000000029A081B9E6E37404A5658830AFD4D404806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40
|
track_geom | 0102000020E610000013000000029A081B9E6E37404A5658830AFD4D404806A6C0EF6C3740DA1B7C6132FD4D40FE65F7E461693740226C787AA5FC4D407DD3E10EC1663740B29DEFA7C6FB4D40898BB63D5465374068479724BCFA4D409A5271F6E1633740B6847CD0B3F94D40431CEBE236623740E9263108ACF84D402C6519E2585F37407E678EBFC7F74D4096218E75715B374027C5B45C23F74D402AA913D044583740968DE1C46AF64D405AF5B9DA8A5537407BEF829B9FF54D407449C2ABD253374086C954C1A8F44D407D1A0AB278543740F2B0506B9AF34D409D11A5BDC15737406688635DDCF24D4061C3D32B655937402CAF6F3ADCF14D408988888888583740B3319C58CDF04D4021FAC8C0145837408C94405DB7EF4D40B8F9593F105B37403DC0804BEDEE4D40DE4C5FE2A25D3740AE47E17A14EE4D40
|
||||||
distance | 8.8968
|
distance | 8.8968
|
||||||
duration | PT20M
|
duration | PT20M
|
||||||
@@ -47,7 +45,6 @@ extra | {"metrics": {"propulsion.main.runTime": "PT11S"}, "observations
|
|||||||
name | Tropics Zone
|
name | Tropics Zone
|
||||||
_from_time | t
|
_from_time | t
|
||||||
_to_time | t
|
_to_time | t
|
||||||
track_geojson | f
|
|
||||||
track_geom | 0102000020E610000002000000A4E85E0D58934FC000DC509B80052C40BC069B43D64553C090510727F3BD2940
|
track_geom | 0102000020E610000002000000A4E85E0D58934FC000DC509B80052C40BC069B43D64553C090510727F3BD2940
|
||||||
distance | 123
|
distance | 123
|
||||||
duration |
|
duration |
|
||||||
@@ -60,7 +57,6 @@ extra |
|
|||||||
name | Alaska Zone
|
name | Alaska Zone
|
||||||
_from_time | t
|
_from_time | t
|
||||||
_to_time | t
|
_to_time | t
|
||||||
track_geojson | f
|
|
||||||
track_geom | 0102000020E610000002000000FDB11ED079F261C090C47F1861B84D40D3505124540B63C09C091C1C8D4A4C40
|
track_geom | 0102000020E610000002000000FDB11ED079F261C090C47F1861B84D40D3505124540B63C09C091C1C8D4A4C40
|
||||||
distance | 1234
|
distance | 1234
|
||||||
duration |
|
duration |
|
||||||
|
@@ -23,14 +23,14 @@ SELECT set_config('vessel.id', :'vessel_id_aava', false) IS NOT NULL as vessel_i
|
|||||||
-- Update notes
|
-- Update notes
|
||||||
\echo 'Add a note for an entry from a trip'
|
\echo 'Add a note for an entry from a trip'
|
||||||
-- Get original value, should be empty
|
-- Get original value, should be empty
|
||||||
SELECT numInstants(trip), valueAtTimestamp(trip_notes,timestampN(trip,14)) from api.logbook where id = 3;
|
SELECT numInstants(trip), valueAtTimestamp(trip_notes,timestampN(trip,13)) from api.logbook where id = 3;
|
||||||
-- Create the string
|
-- Create the string
|
||||||
SELECT concat('["fishing"@', timestampN(trip,14),',""@',timestampN(trip,15),']') as to_be_update FROM api.logbook where id = 3 \gset
|
SELECT concat('["fishing"@', timestampN(trip,13),',""@',timestampN(trip,14),']') as to_be_update FROM api.logbook where id = 3 \gset
|
||||||
--\echo :to_be_update
|
--\echo :to_be_update
|
||||||
-- Update the notes
|
-- Update the notes
|
||||||
SELECT api.update_trip_notes_fn(3, :'to_be_update');
|
SELECT api.update_trip_notes_fn(3, :'to_be_update');
|
||||||
-- Compare with previous value, should include "fishing"
|
-- Compare with previous value, should include "fishing"
|
||||||
SELECT valueAtTimestamp(trip_notes,timestampN(trip,14)) from api.logbook where id = 3;
|
SELECT valueAtTimestamp(trip_notes,timestampN(trip,13)) from api.logbook where id = 3;
|
||||||
|
|
||||||
-- Delete notes
|
-- Delete notes
|
||||||
\echo 'Delete an entry from a trip'
|
\echo 'Delete an entry from a trip'
|
||||||
@@ -38,7 +38,7 @@ SELECT valueAtTimestamp(trip_notes,timestampN(trip,14)) from api.logbook where i
|
|||||||
SELECT numInstants(trip), jsonb_array_length(api.export_logbook_geojson_point_trip_fn(id)->'features') from api.logbook where id = 3;
|
SELECT numInstants(trip), jsonb_array_length(api.export_logbook_geojson_point_trip_fn(id)->'features') from api.logbook where id = 3;
|
||||||
-- Extract the timestamps of the invalid coords
|
-- Extract the timestamps of the invalid coords
|
||||||
--SELECT timestampN(trip,14) as "to_be_delete" FROM api.logbook where id = 3 \gset
|
--SELECT timestampN(trip,14) as "to_be_delete" FROM api.logbook where id = 3 \gset
|
||||||
SELECT concat('[', timestampN(trip,13),',',timestampN(trip,14),')') as to_be_delete FROM api.logbook where id = 3 \gset
|
SELECT concat('[', timestampN(trip,14),',',timestampN(trip,15),')') as to_be_delete FROM api.logbook where id = 3 \gset
|
||||||
--\echo :to_be_delete
|
--\echo :to_be_delete
|
||||||
-- Delete the entry for all trip sequence
|
-- Delete the entry for all trip sequence
|
||||||
SELECT api.delete_trip_entry_fn(3, :'to_be_delete');
|
SELECT api.delete_trip_entry_fn(3, :'to_be_delete');
|
||||||
@@ -47,7 +47,8 @@ SELECT numInstants(trip), jsonb_array_length(api.export_logbook_geojson_point_tr
|
|||||||
|
|
||||||
-- Export PostGIS geography from a trip
|
-- Export PostGIS geography from a trip
|
||||||
\echo 'Export PostGIS geography from trajectory'
|
\echo 'Export PostGIS geography from trajectory'
|
||||||
SELECT ST_IsValid(trajectory(trip)::geometry) IS TRUE FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
--SELECT ST_IsValid(trajectory(trip)::geometry) IS TRUE FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||||
|
SELECT trajectory(trip)::geometry FROM api.logbook WHERE id = 3;
|
||||||
|
|
||||||
-- Export GeoJSON from a trip
|
-- Export GeoJSON from a trip
|
||||||
\echo 'Export GeoJSON with properties from a trip'
|
\echo 'Export GeoJSON with properties from a trip'
|
||||||
|
@@ -33,10 +33,8 @@ numinstants | 44
|
|||||||
jsonb_array_length | 44
|
jsonb_array_length | 44
|
||||||
|
|
||||||
Export PostGIS geography from trajectory
|
Export PostGIS geography from trajectory
|
||||||
-[ RECORD 1 ]
|
-[ RECORD 1 ]----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
?column? | t
|
trajectory | 0102000020E61000002B0000001CACA4BA25BC3840217B18B556DC4D40569FABADD8BB384012EA33B10ADC4D408A65E9F989BB384018A023A8D0DB4D40B174F4AE30BB38409951E2299ADB4D407C348B06DFBA3840443A973D64DB4D40FE4465C39ABA38409313927131DB4D402C9CA4F963BA384029E6C52EF6DA4D4010559D7A49BA384019E25817B7DA4D401BF0F96184BC3840F868160DBEDC4D4095B7239C16BC38401DDB7C6D47DC4D40559FABADD8BB384012EA33B10ADC4D408A65E9F989BB384018A023A8D0DB4D40B274F4AE30BB38409951E2299ADB4D407C348B06DFBA3840443A973D64DB4D40FE4465C39ABA38409313927131DB4D402C9CA4F963BA384029E6C52EF6DA4D4010559D7A49BA384019E25817B7DA4D401BF0F96184BC3840F868160DBEDC4D4098B1B2C755BC38404D52F41B81DC4D4095B7239C16BC38401DDB7C6D47DC4D407448C55AD7BB38406CABFEAD09DC4D40D8367B5688BB38400D54C6BFCFDB4D40B274F4AE30BB38409951E2299ADB4D401256BEC2DDBA3840EB22E06B63DB4D40FE4465C39ABA38409313927131DB4D402C9CA4F963BA384029E6C52EF6DA4D40407D152A49BA3840CDA66D0DB6DA4D40BDBFE6C182BC3840F9269710BDDC4D4098B1B2C755BC38404D52F41B81DC4D4024308CAA15BC3840B85DC36746DC4D407448C55AD7BB38406CABFEAD09DC4D40D8367B5688BB38400D54C6BFCFDB4D408224A24E2FBB384070BEC74F99DB4D4028B0A5EC99BA3840F90C4D7E30DB4D402C4080B163BA38402FA93528F5DA4D40407D152A49BA3840CDA66D0DB6DA4D40BDBFE6C182BC3840F9269710BDDC4D4099B1B2C755BC38404D52F41B81DC4D4024308CAA15BC3840B85DC36746DC4D407448C55AD7BB38406CABFEAD09DC4D40D8367B5688BB38400D54C6BFCFDB4D408224A24E2FBB384070BEC74F99DB4D401156BEC2DDBA3840EB22E06B63DB4D40
|
||||||
-[ RECORD 2 ]
|
|
||||||
?column? | t
|
|
||||||
|
|
||||||
Export GeoJSON with properties from a trip
|
Export GeoJSON with properties from a trip
|
||||||
-[ RECORD 1 ]------+---
|
-[ RECORD 1 ]------+---
|
||||||
@@ -54,8 +52,8 @@ Export KML from a trip
|
|||||||
vessel_id | t
|
vessel_id | t
|
||||||
|
|
||||||
Export timelapse as Geometry LineString from a trip
|
Export timelapse as Geometry LineString from a trip
|
||||||
-[ RECORD 1 ]-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-[ RECORD 1 ]-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
export_logbooks_geojson_linestring_trips_fn | {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[23.530866667, 60.077666667], [23.52355, 60.07065], [23.515866667, 60.0637], [23.507866667, 60.056716667], [23.500533333, 60.04915], [23.493, 60.041633333], [23.485466667, 60.033983333], [23.479033333, 60.026216667], [23.47295, 60.01835], [23.46745, 60.01045], [23.461033333, 60.003516667], [23.45415, 59.99755], [23.445683333, 59.99235], [23.438766667, 59.989266667], [23.435116667, 59.987866667], [23.43165, 59.986333333], [23.4292, 59.984833333], [23.432566667, 59.9862], [23.43375, 59.987266667], [23.431566667, 59.98615], [23.4307, 59.98565], [23.429383333, 59.984683333], [23.421066667, 59.978233333], [23.431, 59.977716667], [23.432133333, 59.976883333], [23.4321, 59.976883333]]}, "properties": {}}]}
|
export_logbooks_geojson_linestring_trips_fn | {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[23.530866667, 60.077666667], [23.52355, 60.07065], [23.515866667, 60.0637], [23.507866667, 60.056716667], [23.500533333, 60.04915], [23.493, 60.041633333], [23.485466667, 60.033983333], [23.479033333, 60.026216667], [23.47295, 60.01835], [23.461033333, 60.003516667], [23.45415, 59.99755], [23.445683333, 59.99235], [23.438766667, 59.989266667], [23.435116667, 59.987866667], [23.43165, 59.986333333], [23.4292, 59.984833333], [23.432566667, 59.9862], [23.43375, 59.987266667], [23.431566667, 59.98615], [23.4307, 59.98565], [23.429383333, 59.984683333], [23.421066667, 59.978233333], [23.431, 59.977716667], [23.432133333, 59.976883333], [23.4321, 59.976883333], [23.425533333, 59.9781], [23.41165, 59.9738], [23.401383333, 59.967], [23.395816667, 59.958866667], [23.390166667, 59.9508], [23.38365, 59.94275], [23.37245, 59.935783333], [23.3572, 59.930766667], [23.33415, 59.918933333], [23.327433333, 59.9114], [23.329966667, 59.90315], [23.3428, 59.89735], [23.3492, 59.889533333], [23.345833333, 59.881266667], [23.344066667, 59.872783333], [23.355716667, 59.866616667], [23.365766667, 59.86]]}, "properties": {}}]}
|
||||||
|
|
||||||
Export timelapse as Geometry Point from a trip
|
Export timelapse as Geometry Point from a trip
|
||||||
-[ RECORD 1 ]
|
-[ RECORD 1 ]
|
||||||
|
@@ -49,4 +49,5 @@ SELECT public.qgis_bbox_trip_py_fn(CONCAT(:'vessel_id_aava'::TEXT, '_', 3, '_',
|
|||||||
--SELECT set_config('vessel.id', :'vessel_id_kapla', false) IS NOT NULL as vessel_id;
|
--SELECT set_config('vessel.id', :'vessel_id_kapla', false) IS NOT NULL as vessel_id;
|
||||||
-- SQL request from QGIS to fetch the necessary data base on vessel_id
|
-- SQL request from QGIS to fetch the necessary data base on vessel_id
|
||||||
--SELECT id, vessel_id, name as logname, ST_Transform(track_geom, 3857) as track_geom, ROUND(distance, 2) as distance, ROUND(EXTRACT(epoch FROM duration)/3600,2) as duration,_from_time,_to_time FROM api.logbook where track_geom is not null and _to_time is not null ORDER BY _from_time DESC;
|
--SELECT id, vessel_id, name as logname, ST_Transform(track_geom, 3857) as track_geom, ROUND(distance, 2) as distance, ROUND(EXTRACT(epoch FROM duration)/3600,2) as duration,_from_time,_to_time FROM api.logbook where track_geom is not null and _to_time is not null ORDER BY _from_time DESC;
|
||||||
SELECT count(*) FROM api.logbook where track_geom is not null and _to_time is not null;
|
--SELECT count(*) FROM api.logbook WHERE track_geom IS NOT NULL AND _to_time iIS NOT NULL;
|
||||||
|
SELECT count(*) FROM api.logbook WHERE trip IS NOT NULL AND _to_time IS NOT NULL;
|
||||||
|
@@ -11,35 +11,35 @@ Get BBOX Extent from SQL query for a log: "^/log_(w+)_(d+).png$"
|
|||||||
qgis_bbox_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
qgis_bbox_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
||||||
|
|
||||||
-[ RECORD 1 ]---+----------------------------------------------------
|
-[ RECORD 1 ]---+----------------------------------------------------
|
||||||
qgis_bbox_py_fn | 2745681,8303937.662962963,2871529,8369891.337037037
|
qgis_bbox_py_fn | 2749398.035335689,8334944,2756917.964664311,8338885
|
||||||
|
|
||||||
Get BBOX Extent from SQL query for a log as line: "^/log_(w+)_(d+)_line.png$"
|
Get BBOX Extent from SQL query for a log as line: "^/log_(w+)_(d+)_line.png$"
|
||||||
-[ RECORD 1 ]---+-------------------------------------------------------------------------
|
-[ RECORD 1 ]---+-------------------------------------------------------------------------
|
||||||
qgis_bbox_py_fn | 2570800.6277114027,8368634.173700442,2645441.4677270483,8417049.85371059
|
qgis_bbox_py_fn | 2570800.6277114027,8368634.173700442,2645441.4677270483,8417049.85371059
|
||||||
|
|
||||||
-[ RECORD 1 ]---+-----------------------------------------------------------------------
|
-[ RECORD 1 ]---+--------------------------------------------------------------------------
|
||||||
qgis_bbox_py_fn | 2752672.6236475753,8300633.73408079,2864537.04561218,8373194.440219993
|
qgis_bbox_py_fn | 2750457.4431765806,8335162.530580978,2755858.0759322727,8338665.643719805
|
||||||
|
|
||||||
Get BBOX Extent from SQL query for all logs by vessel_id: "^/logs_(w+)_(d+).png$"
|
Get BBOX Extent from SQL query for all logs by vessel_id: "^/logs_(w+)_(d+).png$"
|
||||||
-[ RECORD 1 ]---+------------------------------------------------------
|
-[ RECORD 1 ]---+------------------------------------------------------
|
||||||
qgis_bbox_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
qgis_bbox_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
||||||
|
|
||||||
-[ RECORD 1 ]---+------------------------------------------------------
|
-[ RECORD 1 ]---+------------------------------------------------------
|
||||||
qgis_bbox_py_fn | -1950837.4558303887,4864146,5068977.455830389,8543049
|
qgis_bbox_py_fn | -2006284.4558303887,4864146,5013530.455830389,8543049
|
||||||
|
|
||||||
Get BBOX Extent from SQL query for a trip by vessel_id: "^/trip_(w+)_(d+)_(d+).png$"
|
Get BBOX Extent from SQL query for a trip by vessel_id: "^/trip_(w+)_(d+)_(d+).png$"
|
||||||
-[ RECORD 1 ]---+-------------------------------------
|
-[ RECORD 1 ]---+-------------------------------------
|
||||||
qgis_bbox_py_fn | 2595383,4787988.0,2620859,11997696.0
|
qgis_bbox_py_fn | 2595383,4787988.0,2620859,11997696.0
|
||||||
|
|
||||||
-[ RECORD 1 ]---+---------------------------------------
|
-[ RECORD 1 ]---+---------------------------------------
|
||||||
qgis_bbox_py_fn | 90420,-201110377.5,3027720,214517572.5
|
qgis_bbox_py_fn | 97351,-192283890.5,2909895,205691085.5
|
||||||
|
|
||||||
Get BBOX Extent from SQL query for a trip by vessel_id: "^/trip_((w+)_(d+)_(d+)).png$"
|
Get BBOX Extent from SQL query for a trip by vessel_id: "^/trip_((w+)_(d+)_(d+)).png$"
|
||||||
-[ RECORD 1 ]--------+------------------------------------------------------
|
-[ RECORD 1 ]--------+------------------------------------------------------
|
||||||
qgis_bbox_trip_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
qgis_bbox_trip_py_fn | 2556155.0636042403,8365608,2660086.9363957597,8420076
|
||||||
|
|
||||||
-[ RECORD 1 ]--------+------------------------------------------------------
|
-[ RECORD 1 ]--------+------------------------------------------------------
|
||||||
qgis_bbox_trip_py_fn | -1950837.4558303887,4864146,5068977.455830389,8543049
|
qgis_bbox_trip_py_fn | -2006284.4558303887,4864146,5013530.455830389,8543049
|
||||||
|
|
||||||
-[ RECORD 1 ]
|
-[ RECORD 1 ]
|
||||||
count | 3
|
count | 3
|
||||||
|
@@ -18,8 +18,9 @@ fi
|
|||||||
if [[ ! -x "/usr/bin/go" || ! -x "/root/go/bin/mermerd" ]]; then
|
if [[ ! -x "/usr/bin/go" || ! -x "/root/go/bin/mermerd" ]]; then
|
||||||
#wget -q https://go.dev/dl/go1.21.4.linux-arm64.tar.gz && \
|
#wget -q https://go.dev/dl/go1.21.4.linux-arm64.tar.gz && \
|
||||||
#rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.4.linux-arm64.tar.gz && \
|
#rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.4.linux-arm64.tar.gz && \
|
||||||
apt update && apt -y install golang && \
|
apt update && apt -y install golang-go && \
|
||||||
go install github.com/KarnerTh/mermerd@latest
|
#go install github.com/KarnerTh/mermerd@latest require latest go version
|
||||||
|
go install github.com/KarnerTh/mermerd@v0.11.0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# pnpm install
|
# pnpm install
|
||||||
|
Reference in New Issue
Block a user