mirror of https://gitlab.com/bashrc2/epicyon
osmand.net map links
parent
c236317a49
commit
95b55d5f0a
36
maps.py
36
maps.py
|
@ -160,6 +160,40 @@ def _geocoords_from_osmorg_link(url: str) -> (int, float, float):
|
||||||
return zoom, latitude, longitude
|
return zoom, latitude, longitude
|
||||||
|
|
||||||
|
|
||||||
|
def _geocoords_from_osmand_link(url: str) -> (int, float, float):
|
||||||
|
"""Returns geocoordinates from an OSM android map link
|
||||||
|
"""
|
||||||
|
latitude = None
|
||||||
|
longitude = None
|
||||||
|
zoom = 10
|
||||||
|
|
||||||
|
if 'pin=' in url:
|
||||||
|
pin_coords_str = url.split('pin=')[1]
|
||||||
|
if ',' in pin_coords_str:
|
||||||
|
latitude_str = pin_coords_str.split(',')[0]
|
||||||
|
longitude_str = pin_coords_str.split(',')[1]
|
||||||
|
if is_float(latitude_str) and is_float(longitude_str):
|
||||||
|
latitude = float(latitude_str)
|
||||||
|
longitude = float(longitude_str)
|
||||||
|
|
||||||
|
if '#' in url:
|
||||||
|
coords_str = url.split('#')[1]
|
||||||
|
if '/' in coords_str:
|
||||||
|
sections = coords_str.split('/')
|
||||||
|
if len(sections) == 3:
|
||||||
|
zoom_str = sections[0]
|
||||||
|
latitude_str = sections[1]
|
||||||
|
longitude_str = sections[2]
|
||||||
|
if zoom_str.isnumeric() and \
|
||||||
|
is_float(latitude_str) and \
|
||||||
|
is_float(longitude_str):
|
||||||
|
latitude = float(latitude_str)
|
||||||
|
longitude = float(longitude_str)
|
||||||
|
zoom = int(zoom_str)
|
||||||
|
|
||||||
|
return zoom, latitude, longitude
|
||||||
|
|
||||||
|
|
||||||
def _geocoords_from_gmaps_link(url: str) -> (int, float, float):
|
def _geocoords_from_gmaps_link(url: str) -> (int, float, float):
|
||||||
"""Returns geocoordinates from a Gmaps link
|
"""Returns geocoordinates from a Gmaps link
|
||||||
"""
|
"""
|
||||||
|
@ -329,6 +363,8 @@ def geocoords_from_map_link(url: str,
|
||||||
return _geocoords_from_osm_link(url, osm_domain)
|
return _geocoords_from_osm_link(url, osm_domain)
|
||||||
if 'osm.org' in url and 'mlat=' in url:
|
if 'osm.org' in url and 'mlat=' in url:
|
||||||
return _geocoords_from_osmorg_link(url)
|
return _geocoords_from_osmorg_link(url)
|
||||||
|
if 'osmand.net' in url and '/map' in url:
|
||||||
|
return _geocoords_from_osmand_link(url)
|
||||||
if '.google.co' in url:
|
if '.google.co' in url:
|
||||||
return _geocoords_from_gmaps_link(url)
|
return _geocoords_from_gmaps_link(url)
|
||||||
if '.bing.co' in url:
|
if '.bing.co' in url:
|
||||||
|
|
Loading…
Reference in New Issue