Eigentlich sollten OpenLayers (oder andere) nur die Marker anzeigen, die aktuell auch zu sehen sind. Die Marker, die zwar existieren, aber nicht in den sichtbaren Bereich fallen sollten ausgeblendet sein und damit den Browser kaum belasten. Zumindest bei der Google-API ist es so, dass dies nicht standardmäßig gemacht wird sondern hierzu ein MarkerManager [1] zur Hilfe genommen werden muss.
Du müsstest dann bei jedem Verschieben oder Zoomen die Marker für die aktuelle Ansicht (eventuell plus Pufferzone) per AJAX vom Server laden. OpenLayers (oder falls existent der MarkerManager) muss sich dann darum kümmern nur die Marker zu zeichnen, die im sichtbaren Bereich liegen. Hiermit solltest du im Idealfall nichts zu tun haben.
Sollte oben genannter Ansatz den Browser noch zu stark belasten, dann wäre es denkbar die Marker nie zu zeichnen und stattdessen ein Layer mit vorgerenderten Markern über die Karte zu legen. Dies belastet den Browser weniger weil er nicht so viele Objekte verwalten muss.
Nicht nur mit dem IE sondern auch mit anderen Browsern gibt es auf etwas älteren Rechnern mit sochen Mengen massive Probleme.
Das hatte ich in OSM-Wolf http://bitbucket.org/sttmjoc0/osm-pforzheim-unstable/src/ eingebaut. Den JavaScript Code findest Du unter slippy-map/js/ . Die Daten für die Marker werden von dem System unter osm-wolf-slippy generiert. Das System stellt immer die Marker von neun Zoom-Level-12 Kacheln - die im Zentrum des Anzeigebereichs und die acht drum herumliegenden - an. Außerdem werden die Daten von bis zu 81 Kacheln gecached. Solltest Du eine sehr hohe Markerdichte haben, mußt du den Code entsprechend anpassen.
@Zottel: ich glaube bei dir hatte ich diese “dynamische Lösung” gelesen.
Hört sich zunächst für mich als Neuling kompliziert an.
Ich kann zwar programmieren, habe aber festgestellt, dass die OpenLayer-API
in meinen Augen nicht besonders gut beschrieben ist, insbesondere
was den möglichen Optionen/Formaten der einzelnen Objekte entspricht…
Kommt es denn darauf an,
- wieviele Marker ein Layer hat?
oder - wieviele Layer es gibt ?
oder - wieviele Marker im Sichtbereich sind ???