29 lines
554 B
Python
29 lines
554 B
Python
|
#!/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()
|