Skip to content

Commit

Permalink
#1 Work in progress:
Browse files Browse the repository at this point in the history
-Route object (parse, write)
-Time format (multiple precisions)
-Updated test files
-Documentation

[ci skip]
  • Loading branch information
FABallemand committed Jul 2, 2023
1 parent f4bed50 commit b3e9276
Show file tree
Hide file tree
Showing 9 changed files with 588 additions and 322 deletions.
6 changes: 2 additions & 4 deletions ezgpx/gpx/gpx.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import logging
from datetime import datetime

import pandas as pd
from math import degrees
import matplotlib.pyplot as plt

import logging

from ..gpx_elements import Gpx
from ..gpx_parser import Parser
from ..gpx_writer import Writer
Expand All @@ -20,7 +18,7 @@ def __init__(self, file_path: str):
self.file_path: str = file_path
self.parser: Parser = Parser(file_path)
self.gpx: Gpx = self.parser.gpx
self.writer: Writer = Writer(self.gpx, precisions=self.parser.precisions)
self.writer: Writer = Writer(self.gpx, precisions=self.parser.precisions, time_format=self.parser.time_format)

def nb_points(self) -> int:
"""
Expand Down
1 change: 1 addition & 0 deletions ezgpx/gpx_elements/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from .link import *
from .metadata import *
from .person import *
from .route import *
from .track import *
from .track_segment import *
from .track_point import *
Expand Down
17 changes: 12 additions & 5 deletions ezgpx/gpx_elements/gpx.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
import pandas as pd
from datetime import datetime, timezone

from .metadata import *
from .way_point import *
from .track import *

from .metadata import Metadata
from .way_point import WayPoint
from .route import Route
from .track import Track
from .extensions import Extensions
from ..utils import haversine_distance, ramer_douglas_peucker

class Gpx():
Expand All @@ -26,7 +27,9 @@ def __init__(
xmlns_wptx1: str = None,
metadata: Metadata = None,
wpt: list[WayPoint] = [],
tracks: list[Track] = []) -> None:
rte: list[Route] = [],
tracks: list[Track] = [],
extensions: Extensions = None) -> None:
"""
Initialize Gpx instance.
Expand All @@ -42,7 +45,9 @@ def __init__(
xmlns_wptx1 (str, optional): _description_. Defaults to None.
metadata (Metadata, optional): Metadata. Defaults to None.
wpt (list[WayPoint], optional): Way points. Defaults to [].
rte (list[Route], optional): Routes. Defaults to [].
tracks (list[Track], optional): List of tracks. Defaults to [].
extensions (Extensions, optional): Extensions. Defaults to [].
"""
self.creator: str = creator
self.xmlns: str = xmlns
Expand All @@ -57,7 +62,9 @@ def __init__(

self.metadata: Metadata = metadata
self.wpt:list[WayPoint] = wpt
self.rte: list[Route] = rte
self.tracks: list[Track] = tracks
self.extensions: Extensions = extensions

def distance(self) -> float:
"""
Expand Down
44 changes: 44 additions & 0 deletions ezgpx/gpx_elements/route.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import logging

from .extensions import Extensions
from .link import Link
from .way_point import WayPoint

class Route():
"""
Route (rte) element in GPX file.
"""

def __init__(
self,
name: str = None,
cmt: str = None,
desc: str = None,
src: str = None,
link: Link = None,
number: int = None, # non negative integer
type: str = None,
extensions: Extensions = None,
rtept: list[WayPoint] = []) -> None:
"""
Initialize Route instance.
Args:
name (str, optional): Name. Defaults to None.
cmt (str, optional): Comment. Defaults to None.
desc (str, optional): Description. Defaults to None.
src (str, optional): Source. Defaults to None.
link (Link, optional): Link. Defaults to None.
number (int, optional): Number. Defaults to None.
extensions (Extensions, optional): Extensions. Defaults to None.
rtept (list[WayPoint], optional): Route points. Defaults to [].
"""
self.name: str = name
self.cmt: str = cmt
self.desc: str = desc
self.src: str = src
self.link: Link = link
self.number: int = number
self.type: str = type
self.extensions: Extensions = extensions
self.rtept: list[WayPoint] = rtept
Loading

0 comments on commit b3e9276

Please # to comment.