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!