diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index 10aa0ebbf..7b01786a5 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -2,6 +2,7 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); var settings = require("Storage").readJSON("gpsrec.json",1)||{}; +var qOpenStMap = (require("Storage").list("openstmap.json")>0); function getFN(n) { return ".gpsrc"+n.toString(36); @@ -130,8 +131,14 @@ function viewTrack(n, info) { menu["Duration"] = { value : asTime(info.duration)}; menu["Records"] = { value : ""+info.records }; menu['Plot Map'] = function() { + info.qOSTM = false; plotTrack(info); }; + if (qOpenStMap) + menu['Plot OpenStMap'] = function() { + info.qOSTM = true; + plotTrack(info); + } menu['Plot Alt.'] = function() { plotGraph(info, "altitude"); }; @@ -154,6 +161,26 @@ function viewTrack(n, info) { return E.showMenu(menu); } +function drawopenstmap(lat, lon, map) { + var s = require("Storage"); + 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; + 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