From f0ea4f9061a8dcbf9d2eea5e8780eeb4e3acc666 Mon Sep 17 00:00:00 2001 From: javiplx Date: Sun, 15 May 2011 16:39:16 +0000 Subject: [PATCH] Modify stored latitude & longitude upon map center changes git-svn-id: file:///svnroot/wifihood/branches/mapview-redesign@192 c51dfc6a-5949-4919-9c8e-f207a149c383 --- view.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/view.py b/view.py index 913d02d..1444b8d 100755 --- a/view.py +++ b/view.py @@ -112,6 +112,7 @@ class tile_loader : def set_params ( self , conf ) : self.rootdir = os.path.join( self.rootbase , str(conf.zoom) ) self.__reftile , self.__refpix = self.get_reference( conf ) + self.__zoom = conf.zoom def do_change_refpix ( self , dx , dy ) : self.__refpix[0] += dx @@ -142,6 +143,12 @@ class tile_loader : lat = lat * math.pi / 180 return math.modf( ( 1 - math.log( math.tan( lat ) + 1 / math.cos( lat ) ) / math.pi ) / 2 * 2 ** zoom ) + def get_latlon ( self ) : + pixx , pixy = map( float , self.__refpix ) + tilex , tiley = map( float , self.__reftile ) + tiley = math.pi * ( 1 - 2 * ( tiley + pixy/self.tilesize ) / 2.0 ** self.__zoom ) + return math.degrees( math.atan( math.sinh( tiley ) ) ) , ( tilex + pixx/self.tilesize ) / 2.0 ** self.__zoom * 360.0 - 180.0 + def get_tile ( self , tile ) : file = self.tilepath( self.__reftile[0] + tile[0] , self.__reftile[1] + tile[1] ) try : @@ -291,10 +298,12 @@ class simpleMapWidget ( AbstractmapWidget , gtk.Image ) : def do_change_refpix ( self , dx , dy ) : self._bg.do_change_refpix( dx , dy ) + self.config.lat , self.config.lon = self._bg.tileloader.get_latlon() self.update_background() def do_change_reftile ( self , dx , dy ) : self._bg.do_change_reftile( dx , dy ) + self.config.lat , self.config.lon = self._bg.tileloader.get_latlon() self.update_background() def do_change_zoomlevel ( self , dz ) : -- 1.7.9.5