From this discussion and the comment by @merschformann:
The even bigger challenge we have is overlapping stops. Since clicking the stop reveals information from the JSON about it, it can be quite annoying if one blocks the other.
A possible solution, as discussed here, is to shuffle the points in an expanding hexacon grid. A python implementation is given in the same post, and available at https://gist.github.com/naught101/d364b176b0646da9bf58198d79a0197d.