[Watch App][HTTPebble] Wristmap — streets/POI around you

natevwnatevw Posts: 29Member
edited September 2013 in Pebble Watchapp Directory
Hi all, I've just posted my first watch app online:


Wristmap v1.0 is a really minimal map viewer for your Pebble. It gets your location and fetches data via HTTPebble, then draws a map centered on your location. Up/down to zoom, select to refresh location manually. (It also requests your location every few seconds automatically.)

Update (2013/Sep/9) — v1.1 adds a marker at your position in the center of the map, slows the reload rate and makes things slightly less inefficient.

Known issues are at https://github.com/natevw/wristmap/issues, the biggest being it's quite slow (currently takes too many individual requests to redraw) and at least on Android it seems the Pebble Connect app doesn't give me very up-to-date location info. Would love to have a few other people give it a whirl (not too many all at once ;-) and let me know what you think!

image
Post edited by natevw on
·

Comments

  • JustinBeanJustinBean Posts: 35Member
    edited September 2013
    Nice work - There is another pebble GPS app I've seen floating around but nice to have one that I can use without closing SmartWatch+ (once the httpebble update is released anyway - i am on iOS). Is it possible to add a marker where you're currently located on the map without a corresponding smartphone application?
    Post edited by JustinBean on
    ·
  • fugounashifugounashi Posts: 306Member Regular
    edited September 2013
    Awesome work!

    However it seems that httpebble needs to be extended to support precise location and only offers approximate location at the moment.

    http_location_request

    HTTPResult http_location_request();

    Requests the user's approximate location from the phone, as determined via GPS or other means at the phone's discretion


    Pebble Connect for Android has precise location permissions but doesn't seem to use it. Maybe it needs an option to always return precise location for certain watch apps to make up for this httpebble deficiency.


    Post edited by fugounashi on
    ·
  • eyeiseyeis Posts: 487Member Regular
    Could you add like a dot in the map render to show where someone is on the map?
    iPhone 5s with iOS 8
    ·
  • natevwnatevw Posts: 29Member
    Thanks all!

    Good idea to put a small marker for the center of the map, I've got that noted now and should be pretty easy to do.

    As for the HTTPebble location, that's definitely unfortunate. Haven't tried it yet, but I suspect a workaround would be to run a GPS tracker app in the background too — I know at least pulling up Google Maps and centering it causes the watch to catch up then too. Seems like Pebble Connect must just be asking the system for a "lazy" location.
    ·
  • mark reedmark reed Posts: 269Member Regular
    would add my vote for app of the month if i could.
    www.markspebblefaces.com
    ·
  • Ilan LevIlan Lev Posts: 1,435Member Regular
    Really great app.
    ·
  • PhillipCamhiPhillipCamhi Posts: 2Member
    Wow, this is really impressive!  I'm not a developer so in someways this is even more exciting to see the pebble starting to live up to it's promise, it's like magic.  My only suggestion might be to make it refresh less often?  at least on my pebble the rendering takes quite awhile, so you barely have any time to look at the map before it starts over... Just a thought! Keep up the great work! !
    ·
  • dezign999dezign999 Posts: 468Member Regular
    Great concept, would be neat to offer a few options for searching POI types such as Dining, Gas, Entertainment with a little menu.
    Steam B. Willie watch face
    Pebble Punch-Out!!! watch face
    ·
  • natevwnatevw Posts: 29Member
    Thanks to your feedback, I just uploaded a new build. Main changes are the addition of a highlighted dot in the center of the map, and I've slowed down the refresh rate due to the GPS/speed issues. (I also made an internal change to compensate for the status bar height when downloading the image, before it was doing a handful of wasted requests each refresh.)

    Gonna be a busy next couple weeks, but unless there's some easy changes/fixes, the next priority will be a more significant reduction in requests which should hopefully speed up map refresh a lot.

    Unfortunately, POI isn't trivial but an interesting idea. Right now my server simply is stitching raster images, but at some point it would be fun to start tackling a more vector-driven approach as well as POI lookup.
    ·
  • deepdvddeepdvd Posts: 141Member Regular
    I've been trying to get WristMap to be only manually updated. So it will only update when I either zoom out/in or restart the app. How can I do this in the code? 
    Grey Pebble with SmartWatch+  iPhone 5S on iOS 8.1 jailbroken  Pebble Kickstarter (U.S.) Backer on April 21, 2012
    ·
  • natevwnatevw Posts: 29Member
    @deepdvd — if you're okay with the select button still manually triggering the update, then the only thing to do would be to simply return right away or comment out the whole body of reschedule_locTimer: https://github.com/natevw/wristmap/blob/331800da295bdd376907ced1f26ee6c71b95668b/src/wristmap.c#L52

    The select button is similar, just comment out the `request_location` line in the trigger_location callback: https://github.com/natevw/wristmap/blob/331800da295bdd376907ced1f26ee6c71b95668b/src/wristmap.c#L106
    ·
  • fugounashifugounashi Posts: 306Member Regular
    You could redraw the position mark when the location changes but only fetch a new map when it's nearing the edge.
    ·
  • JustinBeanJustinBean Posts: 35Member
    edited September 2013
    Not sure if this is helpful for anyone but, I made a small edit to the PBW code to allow for closer default zoom and optional steady-on backlight by long pressing the select button. I'm a cyclist so I like to have this default at a deeper zoom level so I can get maps more relevant to my immediate location and sometimes the steady backlight is nice at night. Long press the select button and you'll get a little buzz to let you know the backlight is activated (and press again to turn to it off).

    Note: If you have motion backlight turned on in Pebble settings, the backlight might go off if you've switched it on with select long press after the standard timeout. I imagine I could do something about this if accelerometer access was in the SDK but until then you'd have to switch off motion backlight in Pebble settings to fix this.


    Here's the edited PBW code w/ backlight feature (starting zoom at normal level). https://github.com/JustinWUP/wristmap/tree/backlight ;
    Post edited by JustinBean on
    ·
  • @justinbean: is there a way you can make a .pbw with the original zoom level but with the backlight capability? I have an iPhone and my location at the increased zoom level is no where near accurate, I'm not sure if there is a fix for this or not.
    ·
  • natevwnatevw Posts: 29Member
    edited September 2013
    IIRC, HTTPebble has a way to store a bit of user data on the phone on behalf of an app. Could be nice to use that to simply save/restore the last zoom level when the app loads. Might not always be what you want, but maybe a win over some hardcoded default?
    Post edited by natevw on
    ·
  • natevwnatevw Posts: 29Member
    Oh, and good idea @fugounashi to have the dot move — that'd be quicker for me to implement at this point. Unfortunately, I'm not sure it's quite worth doing until the Pebble Connect location situation can be improved (or has anyone tested the GPS logger workaround already?).

    I've added a bunch of this feedback to my github issues backlog, in the meantime great work Justin :-)
    ·
  • JustinBeanJustinBean Posts: 35Member
    @JoeSchmidtknecht Sure. Here it is.    http://db.tt/t072cGlP  I have an iPhone too; at the zoomed in perspective, seems to be more or less accurate for me when I was using it on my morning bike commute in Chicago but YMMV.
    ·
  • fugounashifugounashi Posts: 306Member Regular
    some kind of scale indicator would be nice!  


    ·
  • @JustinBean. Sorry for the delay, but I want to say Thank You for making a custom PBW for me.
    ·
  • JustinBeanJustinBean Posts: 35Member
    @JoeSchmidtknecht No problem, it was really no trouble, thanks to Cloudpebble.
    ·
  • Dan02Dan02 Posts: 12Member
    edited October 2013
    Is there any reason why this wouldnt build in CouldPebble? This keeps happening to me. Thanks for any suggestion.

    1. ../src/http.c:1:1: error: expected identifier or '(' before '.' token
    2. Waf: Leaving directory `/tmp/tmpE98tvj/build'
    3. Build failed
    Post edited by Dan02 on
    ·
  • KatharineKatharine Posts: 717Member, Administrator, Moderator, PDR14 admin
    CloudPebble does not like symbolic links or git submodules. It would build if you replaced the http.c and http.h it imports with the versions from https://github.com/Katharine/httpebble-watch
    Sparkly Code Princesskatharine@getpebble.com. I prefer email to forum PMs.
    CloudPebble Online IDE | Pebble Stopwatch | <3
    Legacy: httpebble | Peapod
    There are two As in my name.
    ·
  • GertGert Posts: 4Member
    Great app! Thanks for pointing to the toner map tiles. They are of good quality. I like your app!
    ·
  • RaghavRithvikRaghavRithvik Posts: 2Member
    edited November 2013
    Post edited by RaghavRithvik on
    ·
  • natevwnatevw Posts: 29Member
    Sorry for the lack of updates lately, been working on some lower-level wireless/networking projects in my free time in the last months but haven't forgotten Wristmap.

    I finally started work on optimizing (i.e. adding compression to) the map loading just last night. Today's announcements are very exciting — the compression work I did could still be useful for battery life, but the new phone-side APIs allow some even more incredible (and probably easier to implement) improvements. I'll keep you all posted! :-)
    ·
  • ilkerAktunailkerAktuna Posts: 29Member
    what about a sdk 2.0 version ?
    ·
  • natevwnatevw Posts: 29Member
    edited January 2014
    Thanks for the interest! I'm still planning on updating it, but got sidetracked helping with the update of Futura Weather to SDK2 first. So Wristmap probably won't make the store on "day one" but if people are still wanting it that helps me know where to prioritize it amongst my other hobby projects.
    Post edited by natevw on
    ·
Sign In or Register to comment.