Я думаю, проблема в том, что если у вас есть такое количество маркеров в памяти, браузеры становятся очень медленными.
У меня была похожая проблема некоторое время назад, и мы наконец загрузили только видимые маркеры и загрузили / разгрузили их, когда пользователь выполняет панорамирование или масштабирование через AJAX. это довольно легко реализовать с помощью событий moveend и zoomend.
// Listeners
GEvent.addListener(map2, "moveend", function() {
map2.clearOverlays();
// Load markers for the current bounds and current zoom level
loadMarkers(map2,map2.getBounds(),map2.getBoundsZoomLevel(map2.getBounds()));
});
GEvent.addListener(map2, "zoomend", function() {
map2.clearOverlays();
// Load markers for the current bounds and current zoom level
loadMarkers(map2,map2.getBounds(),map2.getBoundsZoomLevel(map2.getBounds()));
});
А для более низких уровней масштабирования, когда нужно показать много маркеров, мы сгруппировали их на стороне сервера и загрузили только маркер, представляющий каждый кластер.
Другой способ добиться этого, который немного сложнее, состоит в том, чтобы визуализировать создателей с помощью наложенных мозаичных листов на стороне сервера. Но я думаю, вам понадобится картографический сервер, чтобы сделать это. Вы можете узнать больше об этом в документации Google Maps
http://code.google.com/intl/en/apis/maps/documentation/javascript/examples/overlay-simple.html