• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Openlayers3 - ol.animation.pan mit timeout funktioniert nicht wie erwartet

jsc

New member
Hallo zusammen,

ich habe über openlayers3 eine Karte erstellt, die einen "Flug" von einem Ort über einen anderen zum Zielort simulieren/animieren soll. Ich denke mir die Funktionalität wie folgt:
1. Beim Aufruf ist die Karte auf einen Punkt in der Eifel zentriert.
2. Bei Klick auf den Start-Button soll nach einer Verzögerung von 3 Sekunden ein "Flug" nach Berlin starten (d.h. die Karte verschiebt sich zu diesem neuen Zentrum)
3. Die Karte soll dann 1 Sekunde auf Berlin fokussiert bleiben und dann nach Stuttgart fliegen.

Mit dem folgenden Code wird aber leider immer Stuttgart angesteuert und das auch einmal sofort und dann nochmal gemäß der angegebenen Verzögerung. Ich vermute das Problem hier:
"map.getView().setCenter(Stuttgart);" die Karte wird immer darauf zentriert und das auch ohne Verzögerung. Da ich aber absolute Javascript-Anfängerin bin, habe ich keine Idee, wie ich hier den gewünschten Effekt erreichen kann. Kann mir jemand einen Tipp geben?

Danke fürs lesen und ich freue mich auf Eure Antworten.
LG, jsc


Code:
// Klick auf Button -> Start
var startflight = document.getElementById('start-flight');

// Flug 1: Eifel > Berlin
startflight.addEventListener('click', function() {
  var duration = 2000;
  var start = (new Date()).getTime()+3000;
  var pan = ol.animation.pan({
    source: (view.getCenter(Eifel)),
    start: start
  });

  map.beforeRender(pan);
  map.getView().setCenter(Berlin);
},
true);

// Flug 2: Berlin > Stuttgart
    startflight.addEventListener('click', function() {
  var duration = 2000;
  var start = (new Date()).getTime()+6000;
  var pan = ol.animation.pan({
    source: (view.getCenter(Berlin)),
    start: start
  });

  map.beforeRender(pan);
  map.getView().setCenter(Stuttgart);
},
true);

- - - Aktualisiert - - -

Vielen Dank an alle, die geschaut haben. Das Thema hat sich erledigt, da ich nach mehreren Tagen nun doch selbst eine funtkionierende Lösung gefunden habe, indem ich "pan" einfach ein "setTimeout" hinzugefügt habe.
jsc
 
Zurück
Oben