setDirections
と呼ばれるポイントAからBへのルートを描画する非同期要求がある場合は、this questionまでフォローしています。最終的には、エンドポイントを中心にしたいが、デフォルトでは地図の中心がルートの大部分を表示する。 setDirections
の後に単にsetCenter(endpoint)
を追加しても、エンドポイントでセンタリングが行われません。directionsDisplayの終了後にのみ関数を実行するにはどうすればよいですか?
私はsetTimeoutを使って推論しましたが、もう一度非同期関数であるようです。なぜなら、少し待ってから、私が望むように地図が中心になるからです。
setDirections
の実行後にsetCenter
が実行されるようにするにはどうすればよいですか?私はコールバックについて考えましたが、私がしたいことをしていません。私はRecurialとJavaScript Callback after calling functionからパターンを使用して、以下のなかった私のコードで
:
- 既存の方向性は非常に成功した応答ブロック内で、方向が要求と描画が非同期である
function wrapper (callback) {
- で描画コードをラップ、私は
wrapper
を定義した後、私はwrapper(function(latLng) { map.setCenter(latLng) })
呼び出す
- を呼び出す
callback(this.marker.getPosition())
ここにJSFiddleがあります。 http://jsfiddle.net/EeXQF/2/
setTimeoutの「解決策」はありますが、コメントを外す必要があります。
ええ、私は本当に戻って、それを書き換える必要があります。それを指摘してくれてありがとう。前半全体は無関係です。 –
しかしそれはまたそれよりもfundermentalです。あなたは本当に「質問」を持っていません。また、あなたが何をしたいのか、何が起こっているのか、と言います。 – barryhunter