moved some code around
This commit is contained in:
@@ -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
60
kml_stuff.py
Normal 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
|
||||||
Reference in New Issue
Block a user