Tuesday, 6 March 2018

arcgis javascript api - Visualising clustered features in web maps?


I'm looking for the best symbol to display clustered features in the ArcGIS Server JS API.


I don't like the "fly-out" animated cluster symbol, as used in the Silverlight API clustering or the JS clustering sample (they feel a bit gimmicky).


So far the best option I've found is the Google Maps marker clusterer symbol.


I won't be showing a number in the centre of the cluster symbol, but will be varying the size of the symbol to show concentrations of features, as in this mockup:



enter image description here


What other clustering symbol options are there? Can you point me to a map showing a nice implementation of marker clustering?



Answer



In traditional cartography, marker clustering is called aggregation or sometimes amalgamation. It is part of model generalization: When zooming out, some detailed concepts (e.g. the tree) disappear to be replaced by less detailed aggregated forms (e.g. the forest).


Many good examples can be found in good cartography books. Here are two examples from this book on building aggregation:


enter image description here


enter image description here


enter link description here http://www.ailleursloin.free.fr/A/depot/village_generalise_200k_sans_bati.jpg


I suppose you are looking for more operational methods to do it automatically. This presentation provides an overview of the existing automatic methods. You may have resources to develop some of the algorithms shown... Otherwise, you can found a java implementation of this algorithm (which allow to build the envelop of distant symbols) there, and also of this algorithm there.


Heat maps are also quite a good alternative for this issue. See there an implementation. See also maptimize.



enter image description here


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...