diff options
Diffstat (limited to 'mensa/base.py')
-rw-r--r-- | mensa/base.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/mensa/base.py b/mensa/base.py index a6e8cfa..8db5b8c 100644 --- a/mensa/base.py +++ b/mensa/base.py @@ -36,17 +36,33 @@ def formt (food) : if i.desc : r = r+"\t "+i.desc+"\n" return r +from math import acos, radians, pi, cos, sin +def dist(pos1, pos2) : + # gives a rough estimate of the distance Accuracy: +/- cos(angle + # between coordinates)*37/2pi. (about +/- 50 m for distances). + # Distance is returned in km + if pos1 is None or pos2 is None : + return float("Inf") + lat1, long1 = pos1 + lat2, long2 = pos2 + + a = radians(90 - lat1); + b = radians(90 - lat2); + C = radians(abs(long1-long2)); + return acos(cos(a)*cos(b)+sin(a)*sin(b)*cos(C))*40040/(2*pi); + foodsources = {} renderers = {} class Restaurant(object): - def __init__(self, name, human_name, module, optional_args=[], obligatory_args=()): + def __init__(self, name, human_name, module, optional_args=[], obligatory_args=(), pos=None): self.name = name self.human_name = human_name self.module = module self.optional_args = optional_args self.obligatory_args = obligatory_args + self.pos = pos def get_food(self,**opt_args) : return self.module.get_food_items(*self.obligatory_args, **opt_args) |