Abstract
Although the notion of ‘too many markers’ have been mentioned in several research, in practice, displaying hundreds of Points of Interests (POI) on a web map in two dimensions with an acceptable usability remains a real challenge nowadays. Web practitioners often make excessive use of clustering aggregation to overcome performance bottlenecks without effectively resolving issues of perceived performance. This paper tries to bring a broad awareness by identifying a sample of experience issues which describe a general reality of clustering, and provide a pragmatic survey of potential technologies optimisations. At the end, we discuss the usage of technologies and the lack of documented client-server workflows, along with the need to enlarge our vision of the various clutter reduction methods.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Adam, P.: Pre-clustering Google Maps Markers using KMeans in Django, September 2017. https://medium.com/@padam0/pre-clustering-google-maps-markers-using-kmeans-in-django-aeabc6eb2c0b
Agafonkin, V.: Leaflet, WebGL and the Future of Web Mapping, March 2015. https://www.youtube.com/watch?v=lj4SS1NTqyY
Agafonkin, V.: Clustering millions of points on a map with Supercluster, March 2016. https://blog.mapbox.com/clustering-millions-of-points-on-a-map-with-supercluster-272046ec5c97
Agafonkin, V.: A dive into spatial search algorithms, April 2017. https://blog.mapbox.com/a-dive-into-spatial-search-algorithms-ebd0c5e39d2a
Agafonkin, V.: Client-side clustering or server-side clustering \(\cdot \) Issue 91 \(\cdot \) mapbox/supercluster, July 2018. https://github.com/mapbox/supercluster/issues/91
Alstad, K.: New Findings: State of the Union for Ecommerce Page Speed and Web Performance [Spring 2015], April 2015. https://blog.radware.com/applicationdelivery/wpo/2015/04/new-findings-state-union-ecommerce-page-speed-web-performance-spring-2015/
Andrews, K., Wright, B.: FluidDiagrams: web-based information visualisation using JavaScript and WebGL. In: EuroVis - Short Papers. The Eurographics Association (2014). https://doi.org/10.2312/eurovisshort.20141155
Bernstein, M.: 5 Reasons to Use Protocol Buffers Instead of JSON For Your Next Service, June 2014. https://codeclimate.com/blog/choose-protocol-buffers/
Burigat, S., Chittaro, L.: Decluttering of icons based on aggregation in mobile maps. In: Meng, L., Zipf, A., Winter, S. (eds.) Map-Based Mobile Services. LNGC, pp. 13–32. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-37110-6_2
Chakraborty, S., Nagwani, N.K., Dey, L.: Performance Comparison of Incremental K-means and Incremental DBSCAN Algorithms, June 2014. arXiv:1406.4751 [cs]
Corbacho, D.: Debouncing and Throttling Explained Through Examples, April 2016. https://css-tricks.com/debouncing-throttling-explained-examples/
Dabernig, J.: Geocluster: Server-sideclustering for mapping in Drupal based on Geohash. Master’s thesis, Fakultät für Informatik der Technischen Universität Wien, Vienna, June 2013. http://dasjo.at/files/geocluster-thesis-dabernig.pdf
Delort, J.: Vizualizing large spatial datasets in interactive maps. In: 2010 Second International Conference on Advanced Geographic Information Systems, Applications, and Services, pp. 33–38, February 2010. https://doi.org/10.1109/GEOProcessing.2010.13
Developers, G.: Uses an Excessive DOM Size, May 2019. https://developers.google.com/web/tools/lighthouse/audits/dom-size
Eriksson, O., Rydkvist, E.: An in-depth analysis of dynamically rendered vector-based maps with WebGL using Mapbox GL JS. Master’s thesis, Linköping University, August 2015. http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-121073
Gechev, M., Osmani, A., Hempenius, K., Mathews, K.: Guess.js. https://guess-js.github.io/docs
Gibbs, S.: Google Maps: a decade of transforming the mapping landscape. The Guardian, February 2015. https://www.theguardian.com/technology/2015/feb/08/google-maps-10-anniversary-iphone-android-street-view
Harris, R.: Virtual DOM is pure overhead, December 2018. https://svelte.dev/blog/virtual-dom-is-pure-overhead
Harvey, A., Brown, T., Vakil, A.S., Wood-Santoro, M.: mapbox-gl-accessibility - an accessibility control for Mapbox GL JS, May 2019. https://github.com/mapbox/mapbox-gl-accessibility, original-date: 2017–11-16T14:34:49Z
Heikkinen, I.: Taking advantage of GPU acceleration in the 2D canvas—Web, July 2012. https://developers.google.com/web/updates/2012/07/Taking-advantage-of-GPU-acceleration-in-the-2D-canvas?hl=fr
Here: Ordering Overlapping Markers - Maps API for JavaScript. https://developer.here.com/api-explorer/maps-js/markers/ordering-overlapping-markers
Horak, T., Kister, U., Dachselt, R.: Comparing rendering performance of common web technologies for large graphs. In: Poster Program of the 2018 IEEE VIS Conference, VIS, vol. 18 (2018). https://imld.de/cnt/uploads/Horak-2018-Graph-Performance.pdf
Huang, H., Gartner, G.: A technical survey on decluttering of icons in online map-based mashups. In: Peterson, M. (ed.) Online Maps with APIs and WebServices. LNGC, pp. 157–175. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-27485-5_11
Karambelkar, B.V.: Canvas renderer? \(\cdot \) Issue #463 \(\cdot \) rstudio/leaflet, September 2017. https://github.com/rstudio/leaflet/issues/463#issuecomment-329014257
Korpi, J., Ahonen-Rainio, P.: Clutter reduction methods for point symbols in map mashups. Cartogr. J. 50(3), 257–265 (2013). https://doi.org/10.1179/1743277413Y.0000000065
Krebs, B.: Beating JSON performance with Protobuf, January 2017. https://auth0.com/blog/beating-json-performance-with-protobuf/
Larsgȧrd, N.: Comparing sizes of protobuf vs json, April 2017. https://nilsmagnus.github.io/post/proto-json-sizes/
Lee, A.: Drawing 2D charts with WebGL, May 2019. https://blog.scottlogic.com/2019/05/28/drawing-2d-charts-with-webgl.html
Mahe, L., Broadfoot, C.: Too Many Markers! - Google Maps API - Google Developers, December 2010. https://web.archive.org/web/20121113185947/. https://developers.google.com/maps/articles/toomanymarkers
Mapbox: Create and style clusters (2020). https://www.mapbox.com/mapbox-gl-js/example/cluster/
Maxfield, M.: WebGPU and WSL in Safari, September 2019. https://webkit.org/blog/9528/webgpu-and-wsl-in-safari/
McConnell, J.: WebAssembly support now shipping in all major browsers, November 2017. https://blog.mozilla.org/blog/2017/11/13/webassembly-in-browsers
Meert, W., Tronçon, R., Janssens, G.: Clustering Maps. Master’s thesis, Katholieke Universiteit Leuven, Leuven (2006). http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.132.6977&rep=rep1&type=pdf
Meier, S.: The marker cluster: a critical analysis and a new approach to a common web-based cartographic interface pattern. Int. J. Agric. Environ. Inf. Syst. (IJAEIS) 7(1), 28–43 (2016). https://doi.org/10.4018/IJAEIS.2016010102
Mikkolainen, T.: Canvas filled three ways: JS, WebAssembly and WebGL, December 2018. https://compile.fi/canvas-filled-three-ways-js-webassembly-and-webgl/
Nebel, P.: Dynamic Server-Side Clustering for Large Datasets, January 2018. https://geovation.github.io/dynamic-server-side-geo-clustering
Nemeth, A.: “How do I do clustering on a map correctly” is a common question in mapping applications, March 2015. https://ux.stackexchange.com/a/75190/116603
Network, M.D.: Hit regions and accessibility. https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility
Ninomiya, K.: Webinar Recap: WebGL 2.0, What You Need to Know, May 2017. https://www.khronos.org/blog/webinar-recap-webgl-2.0-what-you-need-to-know
Ortelli, G.: Server-side clustering of geo-points on a map using Elasticsearch, August 2013. https://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/
Osmani, A.: Speed is now a landing page factor for Google Search and Ads!, July 2018. https://twitter.com/addyosmani/status/1022005088058073088
Paul, E.: Case Study: Large-Scale, Server Side Mapping with the Leaflet-Geocluster Stack, June 2015. http://2015.tcdrupal.org/session/case-study-large-scale-server-side-mapping-leaflet-geocluster-stack
Poskanzer, J.: Clusterer.js - marker clustering routines for Google Maps apps (2005). http://www.acme.com/javascript/Clusterer2.js
Rezaei, M., Fränti, P.: Real-time clustering of large geo-referenced data for visualizing on map. Adv. Electr. Comput. Eng. 18, 63–74 (2018). https://doi.org/10.4316/AECE.2018.04008
Sandvik, B.: How to minify GeoJSON files?, November 2012. http://blog.mastermaps.com/2012/11/how-to-minify-geojson-files.html
Sitnik, A.: Faster WebGL/Three.js 3D graphics with OffscreenCanvas and Web Workers, April 2019. https://evilmartians.com/chronicles/faster-webgl-three-js-3d-graphics-with-offscreencanvas-and-web-workers
Svennerberg, G.: Handling Large Amounts of Markers in Google Maps - In usability we trust, May 2009. http://www.svennerberg.com/2009/01/handling-large-amounts-of-markers-in-google-maps/
Teller, S.: Building an interactive DOM benchmark, preliminary results, February 2018. https://swizec.com/blog/building-interactive-dom-benchmark-preliminary-results/swizec/8219
Tihonov, I.: Speed up web maps - minify geojson, November 2014. http://igortihonov.com/2014/11/12/speedup-web-maps-minify-geojson/
Urbica: Visualising large spatiotemporal data in web applications, July 2018. https://medium.com/@Urbica.co/visualising-large-spatiotemporal-data-in-web-applications-8583cf21907
Wagner, J., Osmani, A.: Reduce JavaScript Payloads with Code Splitting—Web Fundamentals, May 2019. https://developers.google.com/web/fundamentals/performance/optimizing-javascript/code-splitting/
Wallez, C., Cabello, R.: Next-Generation 3D Graphics on the Web (Google I/O 2019), May 2019. https://www.youtube.com/watch?v=K2JzIUIHIhc
Weissflog, A.: Thoughts about a WebGL-Next, August 2016. https://floooh.github.io/2016/08/13/webgl-next.html
Wen, T.: Is Protobuf 5x Faster Than JSON?, April 2017. https://dzone.com/articles/is-protobuf-5x-faster-than-json-part-ii
yWorks: SVG, Canvas, WebGL? Visualization options for the web, March 2018. https://www.yworks.com/blog/svg-canvas-webgl
Acknowledgments
The present thesis was written as a part of the Certificate of Advanced Studies in Interaction Science and Technology (CAS) organised by the Human-Centered Interaction Science and Technology Institute (Human-IST) of the University of Fribourg.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Fürhoff, L. (2020). Rethinking the Usage and Experience of Clustering in Web Mapping. In: Yamamoto, S., Mori, H. (eds) Human Interface and the Management of Information. Designing Information. HCII 2020. Lecture Notes in Computer Science(), vol 12184. Springer, Cham. https://doi.org/10.1007/978-3-030-50020-7_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-50020-7_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-50019-1
Online ISBN: 978-3-030-50020-7
eBook Packages: Computer ScienceComputer Science (R0)