In this article, I decided to describe how the functionality of selecting and displaying photos on a specific place on the map was implemented in our photo service gfranq.com. The photo service does not work now.
Since we had a lot of photos in our service and sending requests to database every time the viewport changes was too resource-intensive, it was logical to divide the map into several areas that contain information about the retrieved data. For obvious reasons, these areas have rectangular shape (although hexagonal grid was considered too). As the areas become more spherical at large scales, elements of spherical geometry and tools for it were also considered.
In this article, the following issues were raised:
- Storing and retrieving photos from the database and caching them on the server (SQL, C#, ASP.NET).
- Recalculation of photos that must be hidden or shown when the viewport changes.
- Elements of spherical geometry.