「この辺で」のバージョンアップ
クリスマスイブいかがお過ごしでしょうか。私は昨日公開したばかりの「飲食店検索 – この辺で」をバージョンアップしました。orz
住所やスポット名から検索できるようにしました
地図を動かすだけだとやっぱりめんどくさいので、検索フォームも設置しておきました。日本版でもGClientGeocoderが使えるようになったので実装が簡単になりました。
一覧の店名をクリックしたらジオコーディングしてマーカーを立てるようにしました
リストの店名をクリックすると、お店の場所を示すマーカーがプロットされます。すべてのお店に対してマーカーを立てても良かったのですが、100個マーカーを立てると見づらいのと、マーカーと店舗一覧の紐付けがうまくできないという理由でとりあえず却下しました。
昨日住所をJavaScriptでうまく正規化できなくてジオコーディングできなかったのは、単純に正規表現のgオプションを付け忘れていたためでした。gオプションをつけていなかったので「3-5-2」が「3-5-2」のようになっていただけだったのですw
この機能にあわせて店舗情報をマーカーのinfoWindowの中に表示させるようにしたのですが、これまでmoveendイベント(地図が動き終わった後に発生するイベント)に対して店舗検索を実行するようにしていたので、infoWindowが開くと地図が動いてしまって新たな店舗検索が実行されるというちょっとした問題が発生。
マウスで地図をドラッグしたときだけ地図が動くのなら、dragendというイベントに対して店舗検索を実行させるようにすればいいのですが、地図をダブルクリックしても地図は動くのでそうするわけにもいかず。そのため、infoWindowを開く直前に店舗検索を実行させないフラグを立て、地図が動いても店舗検索が稼動しないようにしました。フラグの解除は地名検索を実行するときと、地図でマウスをクリックしたとき。これでおそらく問題は回避できたはずです。
ジオコーディングがたまに間違っている
ジオコーディングを実装していて気づいたのですが、Googleマップのジオコーディングはたまに間違っています。たとえば「東京都新宿区3-5-3」を検索すると四谷三丁目あたりが表示されます。そのため、お店によっては違う場所が表示されてしまいますのでご了承ください。
そのほかUIまわりの細かい点を改善しています。また気が向いたらバージョンアップします。
コメントを残す