Я специально не работал с картами Google, но много месяцев назад я участвовал в проекте, который управлял мобильной рабочей силой для большого оператора связи.
Они имели схожую функциональность в том, что у них были карты, которые они могли увеличивать для своих распределенных заданий (локально для машины, а не по сети), и мы решили похожую проблему, которая звучит очень похоже на вашу. Достопримечательности на картах назывались ориентирами и обозначались небольшими маркерами на карте, которые назывались указателями ориентиров, которые рабочий мог выбрать для получения текстового описания.
При минимальном увеличении было бы множество указателей, делающих карту бесполезной. Мы приняли командное решение ограничить указатели ориентиров меньшим числом (400). Для этого карта была разделена на матрицу 20x20 независимо от уровня масштабирования, что дало нам 400 матричных элементов.
Затем, если ориентир разделяет тот же элемент матрицы, что и другой, приложение объединяет их и генерирует один указатель ориентира с описательным текстом, содержащим текст всех ориентиров в этом элементе матрицы.
Таким образом, никогда не было более 400 ориентиров. По мере приближения миньона указатели ориентиров были восстановлены, и ориентиры могли заканчиваться в разных матричных элементах - в этом случае они больше не объединялись с другими ориентирами.
Аналогичным образом, уменьшение масштаба иногда объединяет два или более ориентира в один указатель ориентира.
Это звучит как то, что вы пытаетесь достичь с помощью "кластеризации или масштабирования по уровням", хотя, как я уже сказал, у меня мало опыта работы с самими Google Maps, поэтому я не уверен, что это возможно. Но, учитывая репутацию Google, я подозреваю, что это так.