var s = require("Storage"); var map = s.readJSON("openstmap.json"); var HASWIDGETS = true; var y1,y2; map.center = Bangle.project({lat:map.lat,lon:map.lon}); var lat = map.lat, lon = map.lon; var fix = {}; function redraw() { var cx = g.getWidth()/2; var cy = g.getHeight()/2; var p = Bangle.project({lat:lat,lon:lon}); var ix = (p.x-map.center.x)*4096/map.scale + (map.imgx/2) - cx; var iy = (map.center.y-p.y)*4096/map.scale + (map.imgy/2) - cy; //console.log(ix,iy); var tx = 0|(ix/map.tilesize); var ty = 0|(iy/map.tilesize); var ox = (tx*map.tilesize)-ix; var oy = (ty*map.tilesize)-iy; g.setClipRect(0,y1,g.getWidth()-1,y2); for (var x=ox,ttx=tx;xWIDGETS[w].area[0]=="b"); y2 = g.getHeight() - (hasBottomRow ? 24 : 1); } else { y1=0; y2=g.getHeight()-1; } redraw(); setWatch(function() { if (!fix.fix) return; lat = fix.lat; lon = fix.lon; redraw(); }, BTN2, {repeat:true});