(small) maps possible with CONNECT IQ?

Hello programmers,

would it theoretically possible to add the ability to work with (small) maps on the fr920xt or any other CONNECT IQ compatible device?
I mean, as the fenix, tactic, fenix 2 can already display, a small basemap or gmapsupp up to 3 mb (or something like that).

I know that the memory of these devices is limited, but I like to know...;)

regards

VOLKTE
  • You can render lines using the function Graphics.Dc.drawLine(). With that you should be able to display a map. You'd probably need to implement some abstractions around drawing lines and rotating them, but it should be possible.

    I think the biggest issue is storing and parsing the data for a map. There are really no facilities that I've seen for accessing file system data, and even if you could the parsing functionality provided by Lang.String leaves much to be desired. If you pulled the map data down over the network using a web service and Communications.makeJsonRequest(), you could avoid the file storage and parsing issues, but then you would require a connection to a mobile device running Garmin Connect Mobile.
  • For version 1.0 of the SDK there will not be support for drawing maps. For future devices that have onboard maps we are currently investigating this for a future release.
  • Sounds good. Thank you both for your reply.
    Would be nice to have this ability, even on the small display. I love this feature on my fenix 2.
  • I already made a mapping application (with zoom in/out, etc). But it doesn't display on top of the existing 920 maps - if that's what you are asking.
    It's it's own screen.
  • Yes, a own screen. I love the abilty on the fenix/fenix2 to display (small) maps (.img files).Screenshots from my f2

    But I think it is not possible to add this to a fr920xt, because garmin do not want maps on this device.
  • Right.
    It is indeed a bit of a pain, because of the lack of filesystem access. And that's why I originally asked my local file storage question here (https://forums.garmin.com/showthread.php?156793-Local-file-storage).

    But anyway, I found another way to make it work. It doesn't render a raw .img file that you drop on the device, since there is no FS access (and nothing is planned), but I made it work some other way. And yes it's also sort of ugly.

    It's also very possible that it would not work in practice. I'll have to play with a real device to see once connectIQ is available on one. But it currently works on the emulator just fine.
  • Sounds good. Have you a screenshot, how it looks like?
  • It's still a bit rough, but you can move around, zoom in/out, etc.
    This is a map form a nice spot in the SF bay area.







  • Thanks. Looks good! Great work so far. ;) I hope that this will work on a real device too...

    Another question: how big are the datas, because of the limited memory of the units?
  • Yeah, the memory limitations are going to be interesting, but I fear the RAM may be more limiting than the device's internal storage. Once the map is on the device somehow, you still have to load it in memory to render it. But anyway, it's working on the Fenix so it should be feasible.

    I can't really give you a number of how much storage my maps are going to take on the device unfortunately. Currently (I may change the format, etc), an area of about 4300 acres takes about 180KB in JSON to transfer to the device (It will also depend on the level of details). But this should take less memory on the device later (it should be saved in a binary blob, hopefully more efficient than json).. But I have no control over how this is saved since I can only use ConnectIQ "properties". I can try to use common sense in how I encode the data on my side, but that's about it.

    Also, currently the simulator crashes if I try to save a property larger than a few KB. So I can only play with rather small maps (~200 acres), and hopes that's just a simulator bug.

    I really can't wait until we can actually play with a Connect IQ enabled device. I hope I didn't do all this work for nothing ;)