Используйте менеджер маркеров. Я использовал один для Google Maps API v2 (для загрузки по требованию ~ 2000 маркеров через AJAX), и я уверен, что есть один для API v3. Менеджер маркеров - это класс, который позволяет выборочно отображать маркеры на карте Google. Вместо добавления маркеров на карту, вы используете добавить их в менеджер маркеров, и он заботится о том, когда и как отображать маркеры. Маркеры, которые находятся за пределами «видимой» области, удаляются, следовательно, это достаточно эффективно для памяти. Класс менеджера маркеров может предоставлять возможность кластеризации (или вам может понадобиться другой класс для этого). Диспетчер кластеров отображает один маркер, который охватывает несколько маркеров, когда маркеры расположены слишком близко, особенно при высоком уровне масштабирования. Надеюсь, это поможет вам в правильном направлении.