Wackelnde Marker auf der Karte

Hallo OSM-Gemeinde,

wie ihr ja wisst, nutzen wir die Karte von OSM für die Reiseroutenanimation im MAGIX Fotos auf CD&DVD. Vielleicht hat der eine oder andere bereits gesehen, dass während der Animation von Kartenflügen das Kartenoverlay kurzzeitig verrutscht. Für die Darstellung der Karte nutzen wir die Vorgehensweise wie es im Toturial auf der OSM-Seite beschrieben ist.
http://wiki.openstreetmap.org/wiki/DE:Karte_in_Webseite_einbinden

Das heißt wir verwenden Openlayers für die Darstellung der Karte, die der Objekte und die Durchführung der Animationen. Wir können uns leider nicht erklären warum und an welchen Stellen es zu diesen Wacklern kommt. Wir wissen nur, dass diese in Verbindung mit dem Internet Explorer auftreten, den wir auch verwenden.

Könnt ihr uns helfen dieses Problem zu beseitigen?
Habt ihr Tips, an welchen Stellen man ansetzen könnte?

Vielen Dank schon mal für eure Antworten.

http://www.magix.de

Hallo magixAG,
schön auch mal von einem bekannten Anwender hier etwas zu hören!

Da mir das Programm “Fotos auf CD&DVD” leider nicht zur Verfügung steht, bin ich jetzt den folgenden Weg gegangen um das beschriebene Problem zu visiualisieren.:
Ich habe dazu die unter http://wiki.openstreetmap.org/wiki/DE:Karte_in_Webseite_einbinden angegebene Beispiel-URL der Alpenpässe in verschiedenen Browsern geöffnet. Die dabei verwendete Java-VirtualMachine ist “Sun Java 6 Update 16”.

Das Resultat:
1.) Opera 10.10 - keine Probleme
2.) Firefox 3.5.7 - keine Probleme
3.) Internet Explorer 8.0 - extrem langsamer Aufbau der Seite, mit anschließender Fehlermeldung (siehe screenshot)

Dies läßt ein Problem in Verbindung mit dem IE vermuten. Ob es sich hier nun ausschließlich auf die Version 8.0 des IE beschränkt oder auch Vorgängerversionen (7.0, 6.0, etc.) davon betroffen sind, konnte ich in Ermangelung dieser jetzt nicht ergründen.

Möglicherweise ist dieser Mangel den Entwicklern des Scripts bisher noch nicht aufgefallen, da laut Statistiken der meistverwendete Browser nunmal Firefox ist.

Somit möchte ich dies an die betreffenden OSM’er hier einmal weitergeben, mit der Bitte das Script auf Fehler in Verbindung mit dem Internet Explorer 8.0 zu prüfen.

Es wäre jedoch für mich auch denkbar, dass es sich hier um eine Problematik handelt, welche der Überprüfung von Microsoft bedarf, da ich persönlich auch schon einige andere Schwächen der aktuellen IE-Version 8.0 feststellen mußte.

mfG Michael

Ja, OpenLayers scheint mit I.E. nicht perfekt zu laufen. Möglich wäre alternativ, die OSM Tiles
über die google API anzuzeigen…

Chris

Kurze Info:
Die Javavm hat nix mit der verwendeten Javascript engine zu tun.

@Magix
könnt ihr villeicht ein Besipiel mit Testdaten online stellen? dann könnte man sich das mal angucken.

Wiviele Marker verwendet Ihr gleichzeitig?

Hallo,

beim Laden der Karte ansich gibt es keine Probleme (Wir haben jetzt allerdings nicht das Beispiel mit den Alpenpässen getestet).
Das Problem besteht vielmehr darin, dass die Marker vom Typ [OpenLayers.Feature.Vector] auf der Karte verrutschen, wenn die Karte verschoben wird. Dies lässt sich nach unseren Tests in den Versionen 6.0-8.0 des Internet Explorers nachvollziehen. Dafür reichen bereits 2 Marker auf der Karte.

Was noch festgestellt wurde ist, dass der Internet Explorer die Klasse [OpenLayers.Renderer.VML], alle anderen Browser aber die Klasse [OpenLayers.Renderer.SVG] für die Darstellung des Marker verwenden. Vielleicht hilft das bei der Problemanalyse weiter?
Eine kleine Testseite, auf der sich das Verhalten nachvollziehen lässt werden wir gern erstellen.

edit:
Hier noch ein Link zu einem Video, in dem das Wackeln sehr gut zu erkennen ist.
http://tgrimmer.magix.net/public/demo_video.wmv (wenn Fehler kommt, dass die Seite nicht gefunden wurde kommt dann Link noch einmal öffnen oder Seite neu laden)

edit:
Hier noch ein Link zu einer Testseite. Hier kann beim Verschieben der Karte über die Button das wackeln nachvollzogen werden. Dieser Effekt tritt nur im Internet Explorer auf und auch nicht immer an der gleichen Stelle. Man muss also ein bisschen Zommen und Karte verschieben, bis der Fehler auftritt.
http://geomodul.magix.net/map_jumping_markers.html


http://www.magix.de

Eine Testversion von Fotos auf CD & DVD 9 deluxe kann auch unter folgender URL heruntergeladen werden:
http://www.magix.com/de/free-download/testversionen/alle-testversionen/
Hier kann das wackeln in der Reiseroutenanimation ebenfalls im Produkt direkt nachvollzogen werden.
Der vereinfachte Code zum setzen der Marker und zum verschieben der Karte entspricht dem der Testwebseite im vorigen Post.

Hallo,

auf eurer Testseite kam es bei mir unter IE8 in 5min Testzeit zu keinen Hüpfern. Weder beim direkten Verschieben der Karte noch beim Verschieben mittels der äußeren Buttons.

Mit dem IE8 habe ich auch keine Probleme unter einem aktuellen XP. Die Marker bleiben stabil.

Mich wundert nur, dass die Marker selbst per Maus verschoben werden können.

Hi unter FF3.5.7 kann ich auch keine Zuckungen bemerken auch wenn man mehr Maker hinzufügt.

Das was im Demovideo zu sehen ist würde ich fast dem Renderer zuschreiben, dass er die Bewegungen so schnell nicht mitmacht. Kann man den irgendwie auf Syncronisation prüfen?

OK. Danke erst einmal, dass ihr euch die Zeit zum Testen genommen habt.
Dass die Marker verschoben werden können liegt daran, dass sie vom Typ [OpenLayers.Feature.Vector] sind. Es handelt sich also nicht um die “normalen” Marker vom Typ [OpenLayers.Marker]. Wir haben auf die Vektor-Marker zurück gegriffen, da diese Drag&Drop fähig sind, was die einfachen Marker nicht sind.
Bei den Markern vom Typ [OpenLayers.Feature.Vector] gibt es allerdings auch einen Unterschied bei der Darstellung zwischen IE und FF. Der IE verwendet [OpenLayers.Renderer.VML] und FF den [OpenLayers.Renderer.SVG] um die Vektorgraphiken darzustellen.

Das Testen der Synchronität des Renderers ist ein guter Hinweise. Wir werden in der Dokumentation der API nachschauen, ob es eine solche Möglichkeit gibt.

Viele Grüße


http://www.magix.de

Die Verwendung von VML im IE hat den Grund, dass Microsoft sich bisher weigert SVG zu unterstützen. OpenLayers wird dann wohl auf VML umschalten um zumindest etwas Vektorgrafik zu erhalten. Für alle anderen Browser wird es wahrscheinlich SVG verwenden – nicht nur im Firefox.

Gegen das Verschieben der Marker (falls unerwünscht) könntet ihr einen Event-Handler auf einem übergeordneten Objekt registrieren und dann die in Frage kommenden Events per stopPropagation und preventDefault abbrechen. Ich weiß jedoch nicht inwiefern sich dies mit OpenLayers vertragen würde und ob man sich eventuell Seiteneffekte einhandeln würde. Vielleicht bietet OpenLayers auch an, das Verschieben abzuschalten, dann wäre diese Variante natürlich vorzuziehen.

Also in der c’t 3/2010 wurde das Problem auch schon entdeckt :slight_smile:
http://www.heise.de/kiosk/archiv/ct/10/03/106