Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
80a2229
1849-show-more-trajectory-information: make string as resource
sandradeng20 Dec 3, 2024
bf90357
1849-show-more-trajectory-information: update mapbox secret token set…
sandradeng20 Jan 23, 2025
6001ead
1849-show-more-trajectory-information: fix empty trajectory processing
sandradeng20 Jan 31, 2025
c56a4bc
1849-show-more-trajectory-information: refactor code
sandradeng20 Jan 31, 2025
62ff6d4
1849-show-more-trajectory-information: reformat code
sandradeng20 Jan 31, 2025
a6d0653
Merge branch 'main' into 1849-show-more-trajectory-information
abbybernstein Feb 7, 2025
0c76715
add postgres logic to create layer by activity
abbybernstein Feb 11, 2025
f6591ba
connect trajectory by activity layer to timeline app
abbybernstein Feb 11, 2025
30b4b96
change colors by activity type
abbybernstein Feb 11, 2025
1cadf91
add activity summary functionality
abbybernstein Feb 12, 2025
3d98c44
fix postgres activity type assignment
abbybernstein Feb 18, 2025
4b21e40
add trajectory summary colorcoded
abbybernstein Feb 20, 2025
a5f395c
fix summary updating error
abbybernstein Feb 20, 2025
b4f3f42
fix colors
abbybernstein Feb 20, 2025
d795199
Print trajectory info by session
abbybernstein Feb 26, 2025
5fabc91
add summary to bottom sheet
abbybernstein Feb 27, 2025
c46519b
fix page switch loaidng behavior
abbybernstein Mar 4, 2025
880728f
fix centering trajectory
abbybernstein Mar 4, 2025
3a37197
refactor files
abbybernstein Mar 4, 2025
e8d375a
resolve comments
abbybernstein Mar 6, 2025
1cc4285
resolve comments
abbybernstein Mar 10, 2025
bbe55ea
simplifying sql
abbybernstein Mar 10, 2025
7f06941
interactable trajectoryline
abbybernstein Mar 11, 2025
407e686
fix sql script for layer creation
abbybernstein Mar 13, 2025
935da95
fix sql script
abbybernstein Mar 13, 2025
205fd14
fix trajectory interactability
abbybernstein Mar 13, 2025
f8b3eed
resolve comments
abbybernstein Mar 17, 2025
773669c
update user agent
abbybernstein Mar 17, 2025
dda320e
upate trajectoryqueryagent image
abbybernstein Mar 17, 2025
59a1fa1
Merge branch 'main' into 1849-show-more-trajectory-information
abbybernstein Mar 17, 2025
62242c6
fix errors
abbybernstein Mar 18, 2025
f1b2bff
1849-show-more-trajectory-information: resolve comments
sandradeng20 Mar 19, 2025
b64c5cd
redesign trajectory classes
abbybernstein Mar 24, 2025
f064269
fix xml
abbybernstein Mar 26, 2025
59a9842
clickability fixed
abbybernstein Mar 26, 2025
6a73793
fix trajectory line clicking
abbybernstein Apr 1, 2025
c65834b
resolve comments
abbybernstein Apr 1, 2025
e9ef455
resolve comments
abbybernstein Apr 2, 2025
a6a2ffd
resolve comments
abbybernstein Apr 2, 2025
f1a34ce
fix error
abbybernstein Apr 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Agents/SensorLoggerMobileAppAgent/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
services:
sensorloggermobileappagent:
image: ghcr.io/cambridge-cares/sensorloggermobileappagent:5.0.0-activity-data-SNAPSHOT
image: ghcr.io/cambridge-cares/sensorloggermobileappagent:5.1.0
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.cam.cares.jps</groupId>
<artifactId>SensorLoggerMobileAppAgent</artifactId>
<version>5.0.0</version>
<version>5.1.0</version>
<packaging>war</packaging>

<properties>
Expand Down
2 changes: 1 addition & 1 deletion Agents/TrajectoryQueryAgent/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
services:
trajectoryqueryagent:
image: ghcr.io/cambridge-cares/trajectoryqueryagent:4.2.0
image: ghcr.io/cambridge-cares/trajectoryqueryagent:5.0.0
build: .
2 changes: 1 addition & 1 deletion Agents/TrajectoryQueryAgent/trajectoryqueryagent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.cam.cares.jps</groupId>
<artifactId>trajectoryqueryagent</artifactId>
<version>1.0.2</version>
<version>5.0.0</version>
<packaging>war</packaging>

<properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ public JSONObject processRequestParameters(JSONObject requestParams, HttpServlet
* 3) Create geoserver layer
* 4) Return pointIRI to application as response
*
* @param requestParams
* @return
*/
public JSONObject createLayer() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ BEGIN
FROM time_series_quantities
WHERE data_iri = iri;


RETURN column_name_result;
END;
$$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION get_table_name(iri VARCHAR)
RETURNS VARCHAR AS
$$
Expand All @@ -25,11 +27,13 @@ BEGIN
FROM time_series_quantities
WHERE data_iri = iri;


RETURN table_name_result;
END;
$$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION get_time_series(iri VARCHAR)
RETURNS VARCHAR AS
$$
Expand All @@ -41,11 +45,13 @@ BEGIN
FROM time_series_quantities
WHERE data_iri = iri;


RETURN time_series_result;
END;
$$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION get_user_id(device TEXT)
RETURNS VARCHAR AS
$$
Expand All @@ -54,15 +60,15 @@ DECLARE
BEGIN
-- Check if the schema 'timeline' exists
IF EXISTS (
SELECT 1
FROM pg_catalog.pg_namespace
SELECT 1
FROM pg_catalog.pg_namespace
WHERE nspname = 'timeline'
) THEN
-- Check if the table 'smartPhone' exists in the 'timeline' schema
IF EXISTS (
SELECT 1
FROM pg_catalog.pg_tables
WHERE schemaname = 'timeline'
SELECT 1
FROM pg_catalog.pg_tables
WHERE schemaname = 'timeline'
AND tablename = 'smartPhone'
) THEN
-- Perform the query to get the user_id
Expand All @@ -79,57 +85,56 @@ BEGIN
RETURN NULL;
END IF;


RETURN user_result;
END;
$$
LANGUAGE plpgsql;




CREATE OR REPLACE FUNCTION get_location_table(
device_id_array TEXT[]
)
RETURNS TABLE (
"time" bigint,
"geom" geometry,
"speed" double precision,
"altitude" double precision,
"time" bigint,
"geom" geometry,
"speed" double precision,
"altitude" double precision,
"bearing" double precision,
"session_id" character varying,
"device_id" TEXT,
"user_id" TEXT
) AS $$
DECLARE
query TEXT := '';
processed_array TEXT[] := ARRAY[]::TEXT[];
BEGIN
FOR i IN 1..array_length(device_id_array, 1) LOOP
IF get_column_name(get_point_iri(device_id_array[i])) IS NOT NULL THEN
processed_array := array_append(processed_array, device_id_array[i]);
END IF;
END LOOP;

FOR i IN 1..array_length(processed_array, 1) LOOP
IF i > 1 THEN
query := query || ' UNION ALL ';
END IF;


query := query || format(
'SELECT time, %I AS geom, %I AS speed, %I AS altitude, %I AS bearing, %I AS session_id, %L AS device_id, %L AS user_id FROM %I WHERE time_series_iri=%L',
get_column_name(get_point_iri(processed_array[i])),
get_column_name(get_speed_iri(processed_array[i])),
get_column_name(get_altitude_iri(processed_array[i])),
get_column_name(get_bearing_iri(processed_array[i])),
get_column_name(get_session_iri(processed_array[i])),
processed_array[i],
get_user_id(processed_array[i]),
get_table_name(get_point_iri(processed_array[i])),
get_time_series(get_point_iri(processed_array[i]))
get_column_name(get_point_iri(device_id_array[i])),
get_column_name(get_speed_iri(device_id_array[i])),
get_column_name(get_altitude_iri(device_id_array[i])),
get_column_name(get_bearing_iri(device_id_array[i])),
get_column_name(get_session_iri(device_id_array[i])),
device_id_array[i],
get_user_id(device_id_array[i]),
get_table_name(get_point_iri(device_id_array[i])),
get_time_series(get_point_iri(device_id_array[i]))
);
END LOOP;


RETURN QUERY EXECUTE query;
END $$ LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION get_activity_table(
device_id_array TEXT[]
)
Expand All @@ -148,9 +153,12 @@ BEGIN
query := query || ' UNION ALL ';
END IF;


device_id := device_id_array[i];




query := query || format(
'SELECT time, %I AS activity_type, %I ::INTEGER AS confidence_level, %L AS device_id, %L AS user_id FROM %I WHERE time_series_iri = %L',
get_column_name(get_activity_type_iri(device_id)),
Expand All @@ -162,10 +170,13 @@ BEGIN
);
END LOOP;


RETURN QUERY EXECUTE query;
END $$ LANGUAGE plpgsql;




-- used by timeline app only
CREATE OR REPLACE FUNCTION get_device_ids(id VARCHAR)
RETURNS TEXT AS
Expand All @@ -179,54 +190,61 @@ BEGIN
FROM timeline."smartPhone" sp
WHERE sp.user_id = id
AND EXISTS (
SELECT 1
SELECT 1
FROM devices d
WHERE d.device_id = sp.phone_id
);


RETURN phone_id_list;
END;
$$
LANGUAGE plpgsql;




CREATE OR REPLACE FUNCTION fill_activity_types(activity_types varchar[], times bigint[])
RETURNS TABLE (
"time" bigint,
"activity_type" VARCHAR
) AS $$
DECLARE
result varchar[] := '{}';
last_valid varchar := '';
activity varchar;
activity_time bigint;
i integer := 1;
result varchar[] := '{}';
last_valid varchar := '';
activity varchar;
activity_time bigint;
i integer := 1;
BEGIN

FOREACH activity IN ARRAY activity_types
LOOP
IF activity <> 'others' THEN
last_valid := activity;
EXIT;
EXIT;
END IF;
END LOOP;


FOREACH activity IN ARRAY activity_types
LOOP
IF activity <> 'others' THEN
last_valid := activity;
last_valid := activity;
END IF;


result := array_append(result, last_valid);
END LOOP;


FOR i IN 1..array_length(times, 1)
LOOP
activity_time := times[i];
RETURN QUERY SELECT activity_time, result[i];
RETURN QUERY SELECT activity_time, result[i];
END LOOP;

RETURN;

RETURN;
END;
$$
LANGUAGE plpgsql
LANGUAGE plpgsql
Loading