# FIXME : seems that reproducing the previous behaviour requires an extra subtraction of 128 to vpor[1]
# when moving to non-integer viewports, the shift turns and adition, and changes to vpor[0]
- self.vport = [ bordersize * tileloader.tilesize + tileloader.refpix[0] , bordersize * tileloader.tilesize + tileloader.refpix[1] ]
+ self.__vport_base = bordersize * tileloader.tilesize , bordersize * tileloader.tilesize
gtk.gdk.Pixmap.__init__( self , None , pixsize[0] , pixsize[1] , 24 )
def index ( self , x , y ) :
return x + y * self.size[0]
+ def get_viewport ( self ) :
+ refpix = self.tileloader.get_refpix()
+ return self.__vport_base[0] + refpix[0] , self.__vport_base[1] + refpix[1]
+
def loadtiles ( self ) :
for x in range(self.size[0]) :
def do_change_reftile( self , dx , dy ) :
- self.tileloader.reftile[0] += dx
- self.tileloader.reftile[1] += dy
+ self.tileloader.do_change_reftile( dx , dy )
pixsize = self.get_size()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, pixsize[0] , pixsize[1] )
def __init__ ( self , conf ) :
self.tilesize = 256
self.rootdir = "%s/%s/%s" % ( conf.mapsdir , conf.mapclass , conf.zoom )
- self.reftile , self.refpix = self.get_reference( conf )
+ self.__reftile , self.__refpix = self.get_reference( conf )
+
+ def do_change_reftile( self , dx , dy ) :
+ self.__reftile[0] += dx
+ self.__reftile[1] += dy
+
+ def get_refpix ( self ) :
+ return self.__refpix
def get_reference ( self , conf ) :
tilex = self.lon2tilex( conf.lon , conf.zoom )
return math.modf( ( 1 - math.log( math.tan( lat ) + 1 / math.cos( lat ) ) / math.pi ) / 2 * 2 ** zoom )
def get_tile ( self , tile ) :
- file = self.tilepath( self.reftile[0] + tile[0] , self.reftile[1] + tile[1] )
+ file = self.tilepath( self.__reftile[0] + tile[0] , self.__reftile[1] + tile[1] )
try :
os.stat(file)
return gtk.gdk.pixbuf_new_from_file( file )
self.update_background()
def update_background( self ) :
+ vport = self._bg.get_viewport()
p = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, self.win_x , self.win_y )
- p.get_from_drawable( self._bg , self._bg.get_colormap() , self._bg.vport[0] , self._bg.vport[1] , 0 , 0 , self.win_x , self.win_y )
+ p.get_from_drawable( self._bg , self._bg.get_colormap() , vport[0] , vport[1] , 0 , 0 , self.win_x , self.win_y )
self.set_from_pixbuf(p)
def composeMap( self ) :