久々にブログの更新!
さらに、今回は、本来の開発に関する事を書きたい。
内容としては、タイトルにあるように地図アプリを作った時のピンドロップ。
前提として、マップの表示ができていて、現在地の表示も可能、ピンの設定も可能ということ。
そこまでの事については、「xcode map」で検索すると分かりやす解説がたくさん出てくる。
今回躓いたポイントは、現在地へピンを落としたい時の処理。
Marking Map Plusで試し中
現在地のポイントをタップすると、上記のように表示されるだけで、ロングタップしてもピンの設定は出来ない。
タッチイベントが、現在地の青丸に対して動作してしまうので、マップへのピン設定の処理へは回っていかないようだ。
結果的に、ピンの設定は出来ない。
他のピンと同じ位置へのピン設定も同様に出来ないと思う。
(この辺りはあまり細かく試してはいない)
ここから、いろいろと試行錯誤が始まった。
当然、ネットでこの点に関して検索もしてみたが、見つける事が出来なかった。
英語で書かれている記事を読むとあったのかもしれないが・・・
現在地の青丸を変更し、オリジナルで作成を行った場合は、ボタンを追加する事は可能であった。
現在地のアイコンを設定する場合はこれでも問題ないと思うが、それ以外は、現在地表時が変わってしまう。
標準の青丸がいいという訳ではないが、既に、リリースしているアプリだし、標準のマップと同じなので、分かりやすい。
なので、出来る事なら、標準の青丸にボタン追加したいと思った。
それを前提に、いろいろと試してみたのだが、どうもうまくいかない。
そのままでは、青丸のカスタマイズは難しいようだ。
ここで、青丸のカスタマイズについても含めて検索し、やっと見つけた。
参考ししたサイトは、
ここ
もともとは、青丸の色を変えたかったようだが、その結果作成しているものを参考にした。
「MKAnnotationView」のサブクラスの独自のクラスを作成している。
その中に、色指定を可能にしているので、自分の好きな色に変更できるようだ。
今回は、自分のしたい事は色指定ではないので、自分のしたいカスタマイズがかのであるかも含め、クラスの内容を見てみた。
じっくりと読んだ訳ではないが、ざっと見ると、自力で標準と同じ青丸を作成しているようだった。
(これは、自分も考えたが、大変そうで自力では無理だとあきらめた事をやっているようだ)
結果的には、通常のピンと同じようにボタン追加が可能であったので、ボタンを追加。
最終的には 下記のように「ピンを設定」と表示しているボタンの追加が出来た。
このボタンを押した時の処理に対して、現在地の緯度経度を元にピンを設定してやると下記のようになった。
これで、やりたい事が実現できた。
次のバージョンアップでは、これを入れて出そうと思う。
他の内容をいくつか入れて、不具合対応をしてからのリリースかな。
[0回]
PR