質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

700閲覧

Leaflet.jsで、自分がマップ操作をしたときだけイベントを起こす方法

Yasha_Wedyue

総合スコア830

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/01/09 08:19

お世話になります。
今回はJavaScriptの地図表示「Leaflet」についての質問です。

アップアプリによくある「現在地ボタン」を実装しようと思っております。

機能としては、
・現在地ボタンを押すとマップの中心を現在地にし、
現在地が移動すればマップも追従して動く(常に自分を中心にする)。

・自分でマップを操作した場合、現在地が移動してもマップの追従をしないようにする。

という感じです。
追従フラグを作り、オンオフさせることで位置情報更新時にマップの移動を制御します。

ドキュメントを見るとマップのイベントに、movestartというイベントがありましたので、
簡単に実装できる!と思ったのですが、自分の操作ではなくプログラム側の操作でも
イベントが発火するようで、現在地ボタンを押して現在地がマップの中心になり、
追従がオンになると同時に追従がオフになります。

これでは使いものにならないため、いろいろ試行錯誤しているのですが、
mousedownなどではドラッグに対応していないのか、その場でクリックした時のみ
イベントが発火しました。

何かいい方法はないでしょうか?
ご回答、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/01/09 08:47

コードが見えないのですが、movestartで「追従フラグ」を「オフ」にしているということで良いでしょうか?であるならば、mousedownが使えないとのことですが、dragstartイベントで代用できませんか?
Yasha_Wedyue

2019/01/10 23:22

dragstartで行けました… 公式ドキュメントのMapのところにはそのイベントがなかったのですが、動くんですね。 他の項目は全然見ていませんでした。申し訳ございません。 自己解決ではないので、適当に回答していただけませんでしょうか? ベストアンサーにして質問を締めたいと思います。
papinianus

2019/01/11 00:17

ご確認感謝します。回答入れさせていただきます
guest

回答1

0

ベストアンサー

movestartで「追従フラグ」を「オフ」にしているということで良いでしょうか?であるならば、mousedownが使えないとのことですが、dragstartイベントで代用できませんか?

投稿2019/01/11 00:16

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問