diff --git a/Dev-Notes.md b/Dev-Notes.md index 6e5cd4d..a651c3f 100644 --- a/Dev-Notes.md +++ b/Dev-Notes.md @@ -1,16 +1,21 @@ ## 20240117 -Example SQL query to convert Cayenne GPS location into PostGIS point: +Example SQL query to convert Cayenne GPS location into PostGIS point, include RSSI, time, and gatewayId, and filter on gatewayId: ```sql -WITH gps(alt, lat, lon) AS +CREATE OR REPLACE VIEW qgis_friendly AS +WITH data(gatewayId, time, alt, lat, lon, rssi) AS (SELECT + rx_info -> 0 ->> 'gatewayId', + time, CAST (object -> 'gpsLocation' -> '1' ->> 'altitude' AS FLOAT), CAST (object -> 'gpsLocation' -> '1' ->> 'latitude' AS FLOAT), - CAST (object -> 'gpsLocation' -> '1' ->> 'longitude' AS FLOAT) + CAST (object -> 'gpsLocation' -> '1' ->> 'longitude' AS FLOAT), + CAST (rx_info -> 0 ->> 'rssi' AS INTEGER) FROM event_up) -SELECT ST_MakePoint(lon, lat, alt) -FROM gps; +SELECT gatewayId, time, ST_MakePoint(lon, lat, alt) AS location, rssi +FROM data +WHERE gatewayId = '8d269c95ddfe92eb'; ``` `CREATE EXTENSION postgis;` must be run on each database, not just the PostgreSQL instance.