Open test of map tile improvements

Hi folks. Today we’re opening up a test of some alternate map tiles we’ve been working on. Most of our maps offer two different views of observations - when zoomed out everything is displayed as circles, and when zoomed in further observations get presented as pins or dots depending on if the observation is obscured or not. As iNaturalist grows and there are more observations to display, we’re seeing two main problems with the zoomed-out maps.

First - the speed at which we can render a map tile is directly related to the number of observations displayed, so more observations means slower-to-render tiles. It also means the queries we run to fetch data for the tiles are slower, and that impacts the rest of the site. Second - when mapping large result sets, the circles end up overlapping and forming giant blobs, which don’t do a good job of reflecting observation distribution.

Our recent database upgrade opened up the possibility of using grid-based map tiles. In our testing these tiles render faster and put less load on the database, thus less load on the platform in general. We can also shade each grid cell based on the number of observations represented by the cell, and this can produce nicer-looking maps that convey more information.

Here’s an example of what the grids look like:

Here’s a chart that shows how many map tiles we generate per minute over the last day (times are in EST). As shown here we’re generating up to about 3000 tiles per minute, or 50 tiles per second. We’re also entering a slower time of year, so during busy months and certainly during events, we render much more than that. For reference, across all iNaturalist and partner websites, the API, and tiles, we process about 15,000 requests per minute (250/sec) right now, which means map tiles represent about 20% of all traffic.

If you’d like to test out these tiles, there is a button at the bottom of your account settings page that allows you to opt-in to viewing the grid-based tiles. Given these tiles help iNaturalist scale better, we hope to make this change for all users at some point soon. There are bits that might still need improvement (we’re not crazy about the default gray color on explore anymore for example), but we think this is a step in a better direction. We’d like to know what you think!


Ooh, neat! At a glance , I like it, especially if it’s also better/faster for iNat overall. A few small things:

with plants on the satellite picture in a forested area at least, the green tiles are a little hard to see when there’s only one observation.

While it isn’t really a chance from the last map, I see that the obscured observations don’t display as a different icon when in grid mode. Is there a way to display those on the larger grid instead? So they only display as the ‘real’ obscuring square or similar? I think that would work better though it’s true it would have two different square sizes when you are zoomed in at a certain level. Another option would be to not show the obscured observations until you are zoomed out past a certain point, but maybe that would confuse people.

Lastly, I see when I am zoomed out and click on a square with multiple observations, it just shows one observation. Is there an easy way to have it show a list instead? Maybe that would be too server intensive, but it would be nice. If not, is it the most recent observation that shows up?



I like!

I agree the grey is not ideal… but could get used to it.

It would be cool if we could set the zoom level for the switch to pins… some would need that detail over larger areas than others would, and if it defaulted to the level it is now, or even smaller area, but have the ability to change that to greater if you need it.

For those that notice that opting-in doesn’t give you an opt-out after you click it… it does, just need to refresh the settings page to see it!


Green on green needs extra concentration - but it works well enough?


I like it, but the gray color definitely needs to be changed. It is quite difficult to read.


:ballot_box_with_check: Opted In.
It looks great, communicates more, and feels faster.
~Thanks dev team <3


Looks great and loads a lot faster as well!

i think the maps have always merged very nearby observations into one observation marker, which when displayed/clicked would give you details about only one of the observations (i think the most recent, as you suggested). i think with the way the maps work, it would be difficult to give you a list of all the observations in a particular marker/cell, since at very low zoom levels, some markers/cells might represent hundreds of thousands of observations.

It could also re-introduce the server burden it is trying to alleviate :)


@pleary – is the idea to do away with the circles altogether in the long run, or will it remain as an available style for the “colored heatmap” indefinitely?

Works great for me. Thanks.
Note, the opt-in is at the bottom of the Account Settings page, not your Profile Page.


Thanks @vynbos, I edited the post to reflect that.

I like it better when there are lots of observations to display, but when you only have a few of them (like looking up a species with just a handful of observations so far) the pin method is much better at every scale.


I can see when this is rolled out site-wide you’ll get a flood of questions about why things look different. Why not aggregate the obs into circles not squares? That way ppl are likely not to notice that anything has changed.

1 Like

I opted in, and so far much prefer the new option. When there are only a small amount of observations the tiles can be hard to see, but otherwise it’s great.


Nice! The taxon pages load much quicker! Well, the tiles do - still have to wait for the actual goog map for quite a long time.

I see that the new tiles don’t come up on maps on observation pages.

The red is very hard to see. I had to look really hard to find the two pins in the Americas on this one. May I suggest white would be better?

Thank you so much for doing this! Waiting for maps to load has been a real drawback to one’s enjoyment of the site.


-> The red is very hard to see.
That is a big drawback, esp for mopping up CV errors that tend to be single obs dotted around the world. It isn’t so much the red/orange as the translucency. If there could be a better way of indicating single obs more clearly.
->I see that the new tiles don’t come up on maps on observation pages.
Yes they do, you gotta zoom out though.


occasionally the pins are a little deceptive, i think, because one pin can actually represent many observations, and there’s no way to tell how many observations they represent. the color and style (pin vs dot) of the marker also give an accurate picture of only one of those observations when multiple observations are aggregated into one marker. the new density squares don’t handle the obscured dot vs unobscured pin problem, but they do seem to address multiple iconic taxa by going gray, and their opacity level also gives a little bit of an indication of multiple observations.

i wish there was a way to choose pin / dot vs density square (circle) vs heatmap on these maps, rather than just defaulting to density square (circle) at low zoom levels and pins / dots at high zoom levels. it’s possible to build your own custom map using the API, i suppose, but i doubt that many people are comfortable with that.

i think the issue is just that for the same height and width, circles are smaller than squares and don’t provide full coverage of the space. i think the existing circles actually are very similar in concept to these squares, except they are oversized (at maybe 16px x 16px to represent a 4px x 4px square – didn’t measure exactly) and therefore overlap each other quite a bit. these new squares appear to be 8px x 8px and represent a 8px x 8px space, and i suppose you could style the circles to be 8px x 8px, representative of a 8px x 8px space, as well to solve the overlap problem. but i bet some people might be confused about a circle’s lack of full coverage of the space, whereas there is no question with a square.

i personally like circles a little bit more (or smaller squares) because i can see bits of the basemap even when the circles / squares are full opaque, but i understand why they chose to use a full-coverage square.


I’m really struggling to work efficiently on IDs for spp where there are single obs spread over a wide area. the reds get lost where the land is brown, the greens get lost where the land is green. Blue works the best. Switching from satellite to map helps on the reds but the greens and blues get confused with forests and lakes. The translucency of single obs is the main issue. Which has me wondering if we need colour to distinguish kingdoms? Why not instead use colour to indicate density from sold blue for single obs to solid red for the highest density, then it will be a heat map similar to this: