summaryrefslogtreecommitdiff
path: root/layers.py
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2012-05-02 16:43:12 +0100
committerTim Redfern <tim@eclectronics.org>2012-05-02 16:43:12 +0100
commit3209f698306ab0cf22ef0fe31a722bad22214691 (patch)
treef81c7a0d1e2825bcfb6997554fa2ccc3aeef4cee /layers.py
parentbe1dd58124b3b4e1ad7a9eeabfb421d246b6ad1b (diff)
building xml loader
Diffstat (limited to 'layers.py')
-rw-r--r--layers.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/layers.py b/layers.py
new file mode 100644
index 0000000..38aeba4
--- /dev/null
+++ b/layers.py
@@ -0,0 +1,48 @@
+from PIL import Image
+from latLng import latLng
+
+class layer:
+ """a generic GPS image layer"""
+ tl=latLng()
+ br=latLng()
+ pixel=latLng()
+ def __init__(self,file,ll1,ll2):
+ try:
+ self.image=Image.open(file)
+ except:
+ print "gps layer: failed to open", file
+ try:
+ self.tl.parse(ll1)
+ self.br.parse(ll2)
+ self.pixsize=latLng(abs(self.tl.lat-self.br.lat)/self.image.size[1],abs(self.tl.lng-self.br.lng)/self.image.size[0])
+ except:
+ print "gps layer: failed to parse", file
+ def findpixel(self,pos):
+ return latLng(int((pos.lng-self.tl.lng)/self.pixsize.lng),int((pos.lat-self.br.lat)/self.pixsize.lat))
+ def checkcoord(self,pos):
+ p=self.findpixel(pos)
+ if p!=self.pixel:
+ self.pixel=p
+ return self.setcoord(p)
+ else:
+ return None
+ def setcoord(self,pos):
+ return str(1.0)
+
+class trigger():
+ """a generic trigger -
+ id can be anything -
+ i.e. a string or an integer"""
+ def __init__(self,id,command,param):
+ self.id=id
+ self.command=(command,param)
+ def check(self,id):
+ if id==self.id:
+ return command
+ else:
+ return None
+
+class indexlayer(layer):
+ triggers=[]
+ def setcoord(self,pos):
+ return str(1) \ No newline at end of file