aboutsummaryrefslogtreecommitdiff
path: root/mensa/base.py
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-08-28 17:27:55 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-08-28 17:27:55 +0200
commit0e757e1d3822a0adeeb086fbf3e56c20cb1bdb40 (patch)
tree5939da7e0eae26f8d7ca48639230cb47874d90e7 /mensa/base.py
parent81f8785b36a11b98e8bf0051e560e4161d6c50dc (diff)
downloadmensa-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.py18
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)