moved some code around

This commit is contained in:
2020-10-13 13:29:18 +02:00
parent 86f5f9a63f
commit f4eff5bcd0
2 changed files with 72 additions and 51 deletions

View File

@@ -1,11 +1,5 @@
from pprint import pprint
import gpxpy import gpxpy
import gpxpy.gpx import gpxpy.gpx
from lxml import etree
from lxml.etree import _ElementTree
from pykml.factory import KML_ElementMaker as KML
from pykml import parser
import os import os
import logging import logging
@@ -29,20 +23,6 @@ def export_coordinates_gpx_file_as_string(file, prepend_file_name=False):
return str + "</coordinates></LineString>" return str + "</coordinates></LineString>"
def export_coordinates_gpx_file(file):
gpx_file = open(file, "r")
logging.info(f"opening {gpx_file}")
gpx = gpxpy.parse(gpx_file)
coords = list()
for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
coords.append("{0},{1} ".format(round(point.longitude, 6), round(point.latitude, 6)))
return coords
def insert_coordinates_into_kml_file(kml_file, search_string, coordinate_string, backup_orig_file=True): def insert_coordinates_into_kml_file(kml_file, search_string, coordinate_string, backup_orig_file=True):
with open(kml_file) as f: with open(kml_file) as f:
text = f.read() text = f.read()
@@ -64,41 +44,22 @@ def insert_coordinates_into_kml_file(kml_file, search_string, coordinate_string,
f.write(text) f.write(text)
def create_placemark_from_gpx_file(gpx_file):
coords = " ".join(export_coordinates_gpx_file(gpx_file))
return KML.Placemark(
KML.name(gpx_file.split('.', 1)[0]),
KML.LineString(
KML.coordinates(coords)
),
),
def create_kml_from_gpx_files(kml_file):
pms = list()
for filename in os.listdir(os.getcwd()):
if filename.lower().endswith(".xml") or filename.lower().endswith(".gpx"):
pms.append(create_placemark_from_gpx_file(filename))
doc = KML.kml(KML.name("A third placemark!"),
set(pms))
doc = KML.kml(KML.name("A third placemark!"))
pprint(etree.tostring(doc, pretty_print=True, encoding='utf-8', method='xml').decode('utf-8'))
with open(kml_file, "w") as f:
f.write(etree.tostring(doc, pretty_print=True).decode('utf-8'))
for filename in os.listdir(os.getcwd()): for filename in os.listdir(os.getcwd()):
if filename.lower().endswith(".xml") or filename.lower().endswith(".gpx"): if filename.lower().endswith(".xml") or filename.lower().endswith(".gpx"):
coords_string = export_coordinates_gpx_file_as_string(filename) coords_string = export_coordinates_gpx_file_as_string(filename)
insert_coordinates_into_kml_file("europa_testkarte.kml", filename.split('.', 1)[0], coords_string) insert_coordinates_into_kml_file("europa_testkarte.kml", filename.split('.', 1)[0], coords_string)
exit() exit()
out = ""
for filename in os.listdir(os.getcwd()):
if filename.lower().endswith(".xml") or filename.lower().endswith(".gpx"):
out = out + export_coordinates_gpx_file(filename) + "\n"
print(out) def export_coordinates_gpx_file(file):
exit() gpx_file = open(file, "r")
with open("Output.txt", "w") as text_file: logging.info(f"opening {gpx_file}")
text_file.write(out) gpx = gpxpy.parse(gpx_file)
coords = list()
for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
coords.append("{0},{1} ".format(round(point.longitude, 6), round(point.latitude, 6)))
return coords

60
kml_stuff.py Normal file
View File

@@ -0,0 +1,60 @@
import logging
import os
from pprint import pprint
import gpxpy
from lxml import etree
from lxml.etree import _ElementTree
from pykml.factory import KML_ElementMaker as KML
from pykml import parser
def export_coordinates_gpx_file(file):
gpx_file = open(file, "r")
logging.info(f"opening {gpx_file}")
gpx = gpxpy.parse(gpx_file)
coords = list()
for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
coords.append("{0},{1} ".format(round(point.longitude, 6), round(point.latitude, 6)))
return coords
def create_placemark_from_gpx_file(gpx_file):
coords = " ".join(export_coordinates_gpx_file(gpx_file))
return KML.Placemark(
KML.name(gpx_file.split('.', 1)[0]),
KML.LineString(
KML.coordinates(coords)
),
),
def create_kml_from_gpx_files(kml_file):
pms = list()
for filename in os.listdir(os.getcwd()):
if filename.lower().endswith(".xml") or filename.lower().endswith(".gpx"):
pms.append(create_placemark_from_gpx_file(filename))
doc = KML.kml(KML.name("A third placemark!"),
set(pms))
doc = KML.kml(KML.name("A third placemark!"))
pprint(etree.tostring(doc, pretty_print=True, encoding='utf-8', method='xml').decode('utf-8'))
with open(kml_file, "w") as f:
f.write(etree.tostring(doc, pretty_print=True).decode('utf-8'))
def export_coordinates_gpx_file(file):
gpx_file = open(file, "r")
logging.info(f"opening {gpx_file}")
gpx = gpxpy.parse(gpx_file)
coords = list()
for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
coords.append("{0},{1} ".format(round(point.longitude, 6), round(point.latitude, 6)))
return coords