From 0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Tue, 28 Aug 2018 17:27:55 +0200 Subject: Added option for position, radius and distances, more plugins --- mensa/base.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'mensa/base.py') 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) -- cgit v1.2.3