500 Marker und mehr----> Marker dynamisch laden???

Hi,

ich möchte in meine Karte ca. 200-800 Marker laden.
Nun habe ich gelesen (OpenLayers), dass dies insbesondere im IE6 zu
großen Problemen führt.

Ein Lösungsansatz war, dass man die Marker dynamisch läd,
und sie nur dort anzeigt, wo sie auch sichtbar (bzw. ein wenig überlappend) sind!!!

Hat jemand dazu einen Codeschnippsel???

Mir fehlen jegliche Grundkenntnisse, um festzustellen, ob Marker in der Nähe des
Sichbereichs liegen, etc…

Damit wäre mir sehr sehr geholfen!!!

Gruß

Byte

Vorab ich habe keine Erfahrungen mit OpenLayers.

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.

[1] http://code.google.com/p/gmaps-utility-library-dev/source/browse/#svn/trunk/markermanager/docs

Hallo,

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.

Grüßle, detlef

HI,

danke erstmal…
ich werde mal schauen.

@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 ???

Gruß

Byte