Updates and fixes
* XML tag <Navs/> formatted like in native CNX (<Navs />); * Added end delimiter for 'Tracks' array as in native CNX; * Fixed encoding for log output.
This commit is contained in:
@@ -23,7 +23,7 @@ class GPX2CNX:
|
|||||||
self.status_label = tk.Label(root, text="", width=30)
|
self.status_label = tk.Label(root, text="", width=30)
|
||||||
self.status_label.grid(row=4, column=1, columnspan=3, sticky="ew", padx=25, pady=5)
|
self.status_label.grid(row=4, column=1, columnspan=3, sticky="ew", padx=25, pady=5)
|
||||||
|
|
||||||
self.button1 = tk.Button(root, text="GPX -> CNX", command=lambda:[self.status_label.config(text=""), self.select_files()])
|
self.button1 = tk.Button(root, text="GPX -> CNX", command=lambda: [self.status_label.config(text=""), self.select_files()])
|
||||||
self.button1.grid(row=1, column=1, columnspan=1, sticky="ew", padx=25, pady=5)
|
self.button1.grid(row=1, column=1, columnspan=1, sticky="ew", padx=25, pady=5)
|
||||||
|
|
||||||
self.button2 = tk.Button(root, text="POI TYPES EDITOR", command=self.poi_editor)
|
self.button2 = tk.Button(root, text="POI TYPES EDITOR", command=self.poi_editor)
|
||||||
@@ -59,7 +59,7 @@ class GPX2CNX:
|
|||||||
textinfo = ""
|
textinfo = ""
|
||||||
flogout = 0
|
flogout = 0
|
||||||
try:
|
try:
|
||||||
with open("log.txt", "r") as logtxt:
|
with open("log.txt", "r", encoding="utf-8") as logtxt:
|
||||||
textinfo = logtxt.read()
|
textinfo = logtxt.read()
|
||||||
flogout = 1
|
flogout = 1
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
@@ -103,11 +103,10 @@ class GPX2CNX:
|
|||||||
|
|
||||||
# Converts a list of GPX files to CNX xml format
|
# Converts a list of GPX files to CNX xml format
|
||||||
def convert_gpx2cnx(self, gpx_files):
|
def convert_gpx2cnx(self, gpx_files):
|
||||||
output_dir= os.path.join(os.path.normpath(os.path.split(gpx_files[0])[0]),'cnx_routes')
|
output_dir = os.path.join(os.path.normpath(os.path.split(gpx_files[0])[0]), 'cnx_routes')
|
||||||
if not os.path.exists(output_dir):
|
if not os.path.exists(output_dir):
|
||||||
os.makedirs(output_dir)
|
os.makedirs(output_dir)
|
||||||
|
|
||||||
log = "gpx2cnx.py log"
|
|
||||||
self.results = []
|
self.results = []
|
||||||
for gpx_file in gpx_files:
|
for gpx_file in gpx_files:
|
||||||
try:
|
try:
|
||||||
@@ -216,7 +215,8 @@ class GPX2CNX:
|
|||||||
|
|
||||||
if relative_points:
|
if relative_points:
|
||||||
tracks_str = ';'.join(relative_points)
|
tracks_str = ';'.join(relative_points)
|
||||||
ET.SubElement(route, 'Tracks').text = tracks_str
|
format_tracks_str = tracks_str + ';' # Line-ending delimiter as in native CNX
|
||||||
|
ET.SubElement(route, 'Tracks').text = format_tracks_str
|
||||||
else:
|
else:
|
||||||
ET.SubElement(route, 'Tracks').text = ""
|
ET.SubElement(route, 'Tracks').text = ""
|
||||||
|
|
||||||
@@ -235,9 +235,10 @@ class GPX2CNX:
|
|||||||
trim_filename = filename[:18]
|
trim_filename = filename[:18]
|
||||||
output_filename = os.path.join(output_dir, f"route_{trim_filename}.cnx")
|
output_filename = os.path.join(output_dir, f"route_{trim_filename}.cnx")
|
||||||
xml_string = self.prettify(route)
|
xml_string = self.prettify(route)
|
||||||
|
format_xml_string = xml_string.replace("<Navs/>", "<Navs />") # Format the XML tag like in native CNX
|
||||||
with codecs.open(output_filename, "w", encoding='utf-8-sig') as f:
|
with codecs.open(output_filename, "w", encoding='utf-8-sig') as f:
|
||||||
f.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n')
|
f.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n')
|
||||||
f.write(xml_string[xml_string.find('<Route'):])
|
f.write(format_xml_string[format_xml_string.find('<Route'):])
|
||||||
|
|
||||||
self.results.append(f"-- {gpx_file} -> SUCCESS")
|
self.results.append(f"-- {gpx_file} -> SUCCESS")
|
||||||
self.rstat = 1
|
self.rstat = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user