UNPKG

carthorse

Version:

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

62 lines 2.4 kB
import { Pool, Client } from 'pg'; export interface RoutePattern { pattern_name: string; target_distance_km: number; target_elevation_gain: number; route_shape: string; route_type: string; tolerance_percent: number; } export interface RouteRecommendation { route_uuid: string; route_name: string; route_type: string; route_shape: string; input_length_km: number; input_elevation_gain: number; recommended_length_km: number; recommended_elevation_gain: number; route_path: any; route_edges: any[]; trail_count: number; route_score: number; similarity_score: number; region: string; constituent_trails?: any[]; unique_trail_count?: number; total_trail_distance_km?: number; total_trail_elevation_gain_m?: number; out_and_back_distance_km?: number; out_and_back_elevation_gain_m?: number; } export declare class KspRouteGenerator { private pgClient; private stagingSchema; constructor(pgClient: Pool | Client, stagingSchema: string); generateRouteRecommendations(): Promise<RouteRecommendation[]>; private loadRoutePatterns; private addLengthAndElevationColumns; private getRegionFromStagingSchema; storeRecommendationsInDatabase(recommendations: RouteRecommendation[]): Promise<void>; /** * Generate out-and-back routes using KSP algorithm * For out-and-back routes, we target half the distance since we'll double it for the return journey */ generateOutAndBackRoutes(pattern: RoutePattern, targetRoutes?: number): Promise<RouteRecommendation[]>; private fixConnectivityIssues; /** * Generate loop routes using pgRouting's native algorithms * Uses pgr_dijkstra to find paths that return to the start point */ generateLoopRoutes(pattern: RoutePattern, targetRoutes?: number): Promise<RouteRecommendation[]>; /** * Generate point-to-point routes using pgRouting's pgr_dijkstra */ generatePointToPointRoutes(pattern: RoutePattern, targetRoutes?: number): Promise<RouteRecommendation[]>; /** * Generate routes using pgr_withPoints for more flexible routing * This allows starting/ending anywhere on edges, not just at nodes */ generateWithPointsRoutes(pattern: RoutePattern, targetRoutes?: number): Promise<RouteRecommendation[]>; } //# sourceMappingURL=ksp-route-generator.d.ts.map