This is my first post on the kooaba blog. My name is Cristi Prodan and I am a Software Engineer at Kooaba.
I just finished updating our maps view, which shows the location of the mobile queries in the backend analytics tool. Now it is much faster and no more limited to the last 300 requests. Also, it looks much better (see screenshot below).
Remember, the old implementation was straightforward. It showed a marker on the map for each query (i.e. for each time somebody tried to recognize something with the application). This was pretty easy to setup but soon, we noticed that the number of queries can be quite big (a cool problem to have). Moreover, the map would take very long to load. Also, our customers were asking for a better representation.
I always wanted to try out the google-maps-utility-library-v3, which is a great library offering lots of cool things that can be done in conjunction with Google Maps. From this library I chose the MarkerClustererPlus v3 in order to group queries that are close to each other, depending on the zoom level the user chooses.
Check out the result in the screenshot bellow:

Here, customers can see all time usage or just during a specified period of time on a map. The queries are grouped together in circles. The different colors represent the concentraion of queries around the indicated area.
From a technical perspective, the markers (JSON containing the latitudes and longitudes of the query) are loaded with Ajax and fed to the clustering algorithm, which will group them nicely on the client-side. If the user zooms in, the algorithm will recreate the clusters for the area he sees at that time. This happens very fast as it is all done on the user (client) side. Same holds for zooming out.
Using this library proved to be a much simpler and cleaner solution that initially expected, so I ecourage you to try it out for yourselves!
These other links are also worth checking out:
- Code examples on how to use the library in your project
- One simple and a more complex example
- A benchmark of the library’s clustering speed