diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-08-28 17:27:55 +0200 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-08-28 17:27:55 +0200 |
commit | 0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40 (patch) | |
tree | 5939da7e0eae26f8d7ca48639230cb47874d90e7 /mensa/base.py | |
parent | 81f8785b36a11b98e8bf0051e560e4161d6c50dc (diff) | |
download | mensa-0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40.tar.gz mensa-0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40.tar.bz2 mensa-0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40.zip |
Added option for position, radius and distances, more plugins
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) |