UNPKG

carthorse

Version:

A geospatial trail data processing pipeline for building 3D trail databases with elevation data

118 lines 4.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExportQueries = void 0; // Export SQL queries exports.ExportQueries = { // Get trails for export getTrailsForExport: (schemaName) => ` SELECT *, surface as surface_type, CASE WHEN difficulty = 'unknown' THEN 'moderate' ELSE difficulty END as difficulty, ST_AsGeoJSON(geometry, 6, 0) AS geojson FROM ${schemaName}.trails `, // Get routing nodes for export exportRoutingNodesForGeoJSON: (schemaName) => ` SELECT id, id as node_uuid, ST_Y(the_geom) as lat, ST_X(the_geom) as lng, 0 as elevation, node_type, '' as connected_trails, ARRAY[]::text[] as trail_ids, ST_AsGeoJSON(the_geom) as geojson FROM ${schemaName}.ways_noded_vertices_pgr WHERE the_geom IS NOT NULL ORDER BY id `, // Get routing nodes for export exportRoutingNodesForSQLite: (schemaName) => ` SELECT id, id as node_uuid, ST_Y(the_geom) as lat, ST_X(the_geom) as lng, 0 as elevation, node_type, '' as connected_trails, ARRAY[]::text[] as trail_ids, NOW() as created_at FROM ${schemaName}.ways_noded_vertices_pgr WHERE the_geom IS NOT NULL ORDER BY id `, // Get routing edges for export getRoutingEdgesForExport: (schemaName) => ` SELECT id, source, -- ✅ Use correct column name target, -- ✅ Use correct column name app_uuid as trail_id, -- ✅ Use ways_noded column mapping name as trail_name, -- ✅ Use ways_noded column mapping length_km, elevation_gain, elevation_loss, true as is_bidirectional, -- ✅ Default to bidirectional NOW() as created_at, ST_AsGeoJSON(the_geom, 6, 0) AS geojson -- ✅ Use ways_noded geometry FROM ${schemaName}.ways_noded WHERE source IS NOT NULL AND target IS NOT NULL -- ✅ Use correct column names `, // Get route recommendations for export getRouteRecommendationsForExport: (schemaName) => ` SELECT route_uuid, region, input_length_km, input_elevation_gain, recommended_length_km, recommended_elevation_gain, route_type, route_shape, trail_count, route_score, route_path, route_edges, route_name, created_at FROM ${schemaName}.route_recommendations `, // Get routing nodes with fallback values getRoutingNodesForExportWithFallbacks: (schemaName) => ` SELECT id, COALESCE(node_uuid, gen_random_uuid()::text) as node_uuid, lat, lng, elevation, COALESCE(node_type, 'intersection') as node_type, COALESCE(connected_trails, '') as connected_trails, NOW() as created_at FROM ${schemaName}.routing_nodes `, // Get routing edges with distance column getRoutingEdgesForExportWithDistance: (schemaName) => ` SELECT id, source, target, app_uuid as trail_id, -- ✅ Use ways_noded column mapping name as trail_name, -- ✅ Use ways_noded column mapping length_km, ST_AsGeoJSON(the_geom, 6, 0) AS geojson, -- ✅ Use ways_noded geometry NOW() as created_at FROM ${schemaName}.ways_noded WHERE source IS NOT NULL AND target IS NOT NULL `, // Check if route recommendations exist checkRouteRecommendationsExist: (schemaName) => ` SELECT COUNT(*) as count FROM ${schemaName}.route_recommendations `, // Get export statistics getExportStats: (schemaName) => ` SELECT (SELECT COUNT(*) FROM ${schemaName}.trails) as trail_count, (SELECT COUNT(*) FROM ${schemaName}.ways_noded_vertices_pgr) as node_count, (SELECT COUNT(*) FROM ${schemaName}.ways_noded) as edge_count, (SELECT COUNT(*) FROM ${schemaName}.route_recommendations) as recommendation_count `, // Get network statistics getNetworkStatistics: (schemaName) => ` SELECT (SELECT COUNT(*) FROM ${schemaName}.trails) as trail_count, (SELECT COUNT(*) FROM ${schemaName}.ways_noded_vertices_pgr) as node_count, (SELECT COUNT(*) FROM ${schemaName}.ways_noded) as edge_count, (SELECT COUNT(*) FROM ${schemaName}.route_recommendations) as route_count ` }; //# sourceMappingURL=export-queries.js.map