С картами OSM умеет работать например
leafletjs.com
На близком зуме то что Вы видите называется кластеризацией (cluster) - пример
https://www.mapbox.com/mapbox.js/example/v1.0.0/le... или любой другой плагин
На высоком зуме - тепловой картой (heatmap) - пример
https://github.com/Leaflet/Leaflet.heat
В зависимости от уровня зума метки скрываются а слой с тепловой картой выводится и наоборот.