#!/usr/bin/env python3 import sys import os import argparse import copy import fileinput from osgeo import ogr import osr import urllib.parse def rewrite_gpx(filename): for line in fileinput.input(filename, inplace=True): if fileinput.isfirstline() and "'" in line: line = '' if fileinput.filelineno() == 2 and "version" not in line: line = line.replace('= threshold: if not flag: print(f'{filename} has problem, check with the folling urls:') print() flag = True if add_prefix: dir = os.path.dirname(filename) if dir: dir += '/' os.rename(filename, f'{dir}invalid_{os.path.basename(filename)}') geojson = '{{"type": "LineString", "coordinates": [[{}, {}], [{}, {}]]}}'.format( geom1.GetX(), geom1.GetY(), geom2.GetX(), geom2.GetY() ) encoded = urllib.parse.quote(geojson) print('http://geojson.io/#data=data:application/json,{}'.format(encoded)) print() else: break trkpt = nextTrkpt def main(argv): parser = argparse.ArgumentParser() parser.add_argument('file', help="you can add multiple gpx files at the same time", nargs='+') parser.add_argument("-i", help="add prefix to invalid files", action="store_true") parser.add_argument("-d", help="distance of tolerance(m), 100 by default", dest="distance", default=100) args = parser.parse_args() for file in args.file: check_valid(file, args.distance, args.i) print(args.distance) if __name__ == '__main__': main(sys.argv)