Issues with large numbers of map points

To familiarize myself with the Losant platform, I took a cellular Imp and hooked it to up to various parts of my camper’s DC power system as well as a GPS for my latest road trip, a total of 2400 miles over 12 days. I’m delighted with the platform, but I’ve seen some performance issues with the map.

I was reporting location every 30s, and it seems like there isn’t any data decimation happening. Drawing the map seems to bog down the browser pretty significantly, to the point that I get the “a web page is slowing down your browser” warning out of Firefox. It also seems to stop plotting data at some point. If the map is set to show 14 days of data, I’m still in Washington, but if I set it to 3 days, it shows my drive home to California. Unlike the line graphs, the map block doesn’t seem to have a “resolution” interval to reduce the density of data.

Am I missing something that I could do to improve performance here? (other than report location less often, I guess)

Thanks,
Zandr Milewski
Platform Evangelist
Electric Imp

Adding a form of resolution to the map block has been a priority for us. As the size of asset tracking applications has grown on our platform, this is a performance bottleneck that several users have experienced.

As for a GPS-based resolution, do you have any input on how you would like that to work? The two approaches we’ve discussed internally have been:

  1. A time-based resolution, where the graph displays the first, last, or middle point over each resolution window.
  2. A radius-based resolution, where all points within a defined radius are grouped into a single point.

If you have other thoughts, would love to hear them!

I can see the value in both approaches, but at least for this dataset, radius is probably more useful. De-duplication of the points where I was stationary will drastically reduce the size of the dataset, and it’s easy to relate radius to zoom. There’s no reason to distinguish datapoints that will end up in the same pixel of the map block, for example.