import json import pyproj from shapely.geometry import LineString from shapely.ops import transform from functools import partial from analysis.util import json_path def distance(track): project = partial( pyproj.transform, pyproj.Proj(init='EPSG:4326'), pyproj.Proj(init='EPSG:32633')) return transform(project, track).length def json_to_track(geojson, path): return LineString(json_path(json.loads(geojson), path)) def calc_distance(geojson: str, path="coordinates"): track = json_to_track(geojson, path) return distance(track)