28 lines
554 B
Python
Executable file
28 lines
554 B
Python
Executable file
#!/bin/python3
|
|
|
|
import gpxpy
|
|
import gpxpy.gpx
|
|
import shapely
|
|
import pickle
|
|
|
|
GPX_IN_FILE = 'caches.gpx'
|
|
GPX_OUT_FILE = 'koggenland.gpx'
|
|
PICKLE_FILE = 'polygon.pickle'
|
|
|
|
|
|
def main():
|
|
with open(PICKLE_FILE, 'rb') as f:
|
|
area = pickle.load(f)
|
|
|
|
with open(GPX_IN_FILE, 'rb') as f:
|
|
gpx = gpxpy.parse(f)
|
|
|
|
gpx.waypoints = list(filter(lambda wp: area.contains(
|
|
shapely.Point(wp.latitude, wp.longitude)), gpx.waypoints))
|
|
|
|
with open(GPX_OUT_FILE, 'w') as f:
|
|
f.write(gpx.to_xml())
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|