(** High-level Unix API for GPX operations *) (* Re-export core modules *) module Types = Gpx.Types module Parser = Gpx.Parser module Writer = Gpx.Writer module Validate = Gpx.Validate module IO = Gpx_io (* Re-export common types *) open Gpx.Types (** Convenience functions for common operations *) (** Read and parse GPX file *) val read : string -> gpx result (** Read and parse GPX file with validation *) val read_validated : string -> gpx result (** Write GPX to file *) val write : string -> gpx -> unit result (** Write GPX to file with validation *) val write_validated : string -> gpx -> unit result (** Write GPX to file with backup *) val write_with_backup : string -> gpx -> string result (** Convert GPX to string *) val to_string : gpx -> string result (** Parse GPX from string *) val from_string : string -> gpx result (** Quick validation check *) val is_valid : gpx -> bool (** Get validation issues *) val validate : gpx -> Gpx.Validate.validation_result (** Create simple waypoint *) val make_waypoint : lat:float -> lon:float -> ?name:string -> ?desc:string -> unit -> waypoint result (** Create simple track from coordinate list *) val make_track_from_coords : name:string -> (float * float) list -> track result (** Create simple route from coordinate list *) val make_route_from_coords : name:string -> (float * float) list -> route result (** Extract coordinates from waypoints *) val waypoint_coords : waypoint_data -> float * float (** Extract coordinates from track *) val track_coords : track -> (float * float) list (** Extract coordinates from route *) val route_coords : route -> (float * float) list (** Count total points in GPX *) val count_points : gpx -> int (** GPX statistics *) type gpx_stats = { waypoint_count : int; route_count : int; track_count : int; total_points : int; has_elevation : bool; has_time : bool; } (** Get GPX statistics *) val get_stats : gpx -> gpx_stats (** Pretty print GPX statistics *) val print_stats : gpx -> unit