28 lines
777 B
Python
28 lines
777 B
Python
# -*- coding: utf-8 -*-
|
|
# vi:si:et:sw=4:sts=4:ts=4
|
|
import math
|
|
|
|
|
|
def center(lat_sw, lng_sw, lat_ne=None, lng_ne=None):
|
|
if not lat_ne and not lng_ne:
|
|
return min(lat_sw, lng_sw) + abs(lat_sw-lng_sw)/2
|
|
else:
|
|
return (center(lat_sw,lng_sw), center(lat_ne, lng_ne))
|
|
|
|
def area(lat_sw, lng_sw, lat_ne, lng_ne):
|
|
return (lat_ne - lat_sw) * (lng_ne - lng_sw)
|
|
|
|
def latlngspan2latlng(lat, lng, latSpan, lngSpan):
|
|
return dict(
|
|
lat_sw = lat - latSpan, lng_sw = lng - lngSpan,
|
|
lat_ne = lat + latSpan, lng_ne = lng + latSpan
|
|
)
|
|
|
|
def parse_location_string(location_string):
|
|
l = location_string.split('+')
|
|
if len(l) == 1:
|
|
l = location_string.split(';')
|
|
l = [i.strip() for i in l]
|
|
l = filter(lambda x: x, l)
|
|
return l
|
|
|