MapView上に表示させたピンを長押しでスムーズに移動させる方法

194 views
Skip to first unread message

nina

unread,
May 20, 2011, 12:00:42 AM5/20/11
to 日本Androidの会
お世話になっております。
ninaと申します。

Android、Google Mapを表示させ、任意の位置にピンを配置させるアプリを作っています。
更に、ピンを長押ししてマップ上を移動させ、最後にドロップした位置を取得する、という機能をつけたいです。

今のところ、以下のサイトを参考に、
・地図表示、ピン表示
・ピンを長押ししたときの検知
までできています。

http://d.hatena.ne.jp/glass-_-onion/20110310/1299759990
http://d.hatena.ne.jp/tsumuz/20110424/1303609418

しかし、「ピンを長押しして、マップ上を移動」というところで、はまっています。
また、今の実装では、MapView上のピン配置以外の位置でも長押しするとロングタップの検知をしてしまいます。。

何か実現できる方法はありますでしょうか?
Message has been deleted

Nkzn

unread,
May 25, 2011, 12:54:02 AM5/25/11
to android-g...@googlegroups.com
なかざんです。

私が以前、GClue社でアルバイトをしていたころに作った「BLOCCO 範囲指定プラグイン」で、同様のオペレーションを行っています。
ただ、私の場合は長押しを諦めて触っただけで動かせるようにしましたが。。。


BLOCCOアプリ

範囲指定プラグインのソース
↑の一番下にあるLocationOverlayクラスです。


1年以上前に作ったものなので、死ぬほどソースが汚いのです。申し訳ないっす。。。

方針としましては、
ピンを触る→ピンを削除してdrawメソッドでピンと同じ画像を描画する→onTouchEventで無理矢理ピンを指に追従させる→指を離した場所にピンを置き直す
といった感じです。
ロングタップは1年前に丸4日ほどかけて調べた&力技で頑張ろうとしましたが、「やらないのが一番楽」という結論に至りました。

ご相談いただければお役に立てるかと思いますので、まだお悩みのようでしたらご連絡ください。

--Yukiya Nakagawa
Reply all
Reply to author
Forward
0 new messages