/* OpenStreetMap plotting module. Usage: var m = require("openstmap"); // m.lat/lon are now the center of the loaded map m.draw(); // draw centered on the middle of the loaded map // plot gps position on map Bangle.on('GPS',function(f) { if (!f.fix) return; var p = m.latLonToXY(fix.lat, fix.lon); g.fillRect(p.x-2, p.y-2, p.x+2, p.y+2); }); // recenter and redraw map! function center() { m.lat = fix.lat; m.lon = fix.lon; m.draw(); } */ var map = require("Storage").readJSON("openstmap.json"); map.center = Bangle.project({lat:map.lat,lon:map.lon}); exports.map = map; exports.lat = map.lat; // actual position of middle of screen exports.lon = map.lon; // actual position of middle of screen var m = exports; exports.draw = function() { var s = require("Storage"); var cx = g.getWidth()/2; var cy = g.getHeight()/2; var p = Bangle.project({lat:m.lat,lon:m.lon}); var ix = (p.x-map.center.x)/map.scale + (map.imgx/2) - cx; var iy = (map.center.y-p.y)/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; for (var x=ox,ttx=tx;x