SwiftでMKMapView上にピン(MKPointAnnotation)置いてみた

 

はじめまして!

iPhoneアプリ開発歴約3年であるCokaholicのTKと申します!

私がAppStoreにリリースしたアプリは以下のサイトをチェックしてみてください!
https://itunes.apple.com/us/artist/keisuke-tatsumi/id574246116

iTunes

さてさて、最近はAppleが新言語「Swift」を発表しやがりましたので、Swift漬けの毎日を送っている私ですが、以下のリンクにて、今回の表題と同じタイトルの記事を投稿しましたので、Swiftプログラマーの同士たちはぜひチェックしてみてください!

http://qiita.com/Nietzsche/items/03eb06d407178e97bb2e

AppDelegate.swift

MapViewController.swift

灯台もと暗し@開発日誌。

 

まだ試していないけれど、自分のためのメモ。
インフォバブルのタブ間の値はまたげない。タブを切り替えると他のタブのDOMが取得できなくなる。切り替えるとDOMツリーも無くなるのかなあ。各タブごとにセーブボタンを配置したけれど、これだと他のタブでセーブしないままこっちでセーブしてしまうと向こう側のデータがリセットされてしまう。他人に使わせるとこまで考慮にいれると、ロバストではない。だから、ちょっと気持ち悪い。

7dd4c3f74f006b34bb1d70d7adebd54e4

どっかに各タブの値を退避させておけばいいんだけどなー。あ、マーカーがいた。各タブの値が変化する度にマーカーのプロパティをオーバーライドしてしまえばいいわけか。あたりまえといえばあたりまえ、なんだけど、試してみる価値はありそう。

OLYMPUS DIGITAL CAMERA

ならねこ + infoBubble.js

 

情報ウィンドウをタブ化したいなーと思っていて、だけど自分でやるのはしんどいなーと思っていて、ググってみたら、infoBubbleというライブラリに行き着いた。WebStormでこれのコードを見るに、ちょっと変数名にミスがあるような? 地図オブジェクトの変数名をちょこっと修正すれば、導入自体はすんなりいけました。以下はその後のメモ。

・MVC配列に入れられる
・見かけは情報ウィンドウだが実態はオーバーレイ
・なのでマーカーとの連携は弱くなっている
・close()してもメモリ上に残っているのでsetMpap(null)できっちり消す
・そうしないとローカルストレージからのロード時に挙動がおかしくなる
・ウィンドウの裏にランドマークがあるとこれが反応してイラッとくる

ならねこ宣言 ver. 0.1001

 

んー、アップルのmapkitのウィンドウはカスタムできるのかなあ。ピュア・swiftでつくりたいかも。さて、アプリの三原則である、データの編集、保存、復元をwebだけでやってみました。取材用のメモだけでなく、そのままGISにしてしまうことができます。マーカーこそ主人公であって、そのデザインをウィンドウのGUIで調整できる、という部分が私なりの発想の転換です。今後もこれをベースにいろいろ拡張していこうかなー、と思います。とりあえず、ならねこversion 0.1ということで。このアプリ、最終的には「つながる」がキーになっていくと思います。

大阪北区中崎町

てくにかる、のーと、すりい。

 

ぐーぐるまっぷのマーカーの続き。要するにさあ、地図自体をOSみたいにしたいんだなあ。そのときにちゅうもくすべきなのが情報ウィンドウinfoWindow、あのふきだしのやつね。あれがもーほんとくせもので、いちばんはらたつのが、「ウィンドウ」のくせに吹き出しくりっくしても手前にでてこないんだなあ。

冒頭の画像のように、画面下にいくほど手前に表示されます。でもね、情報ウィンドウのプロパティzIndex:0を加えるだけで、ましになります。ウィンドウ自体にイベントが割り当てられていないので、ウィンドウをクリックしてもダメだけど、マーカーをワンクリックするだけで、手前に表示されるようになります。原理は、、、ようわからん。とりあえず、そうなる。

こんな状況でも・・・左下の水色のマーカーをクリックするとウィンドウが、、、
大阪北区中崎町

ほら!手前に出てくる。
大阪北区中崎町_と_なかざき66_html_-_ならねこ_-____Desktop_ならねこ_

このプログラムでは地図をクリックするたびにマーカーとウィンドウが作られる。全部のウィンドウがzIndex:0で作成されても最新のマーカーのウィンドウが手前にでますね。