SwiftUI沼でゆっくり浸る 郵便番号表示アプリから地図マップへ
こんにちは、川上です。
Myの郵便番号表示アプリで、郵便番号やその住所名のList表示までが、概ね、目的の形ができてました。
が、これまででも良かったけど、「だから、何?」と、なんか途中トンボのようで、何処へ飛ばすかなぁ。。。でした。
んで、取得した郵便番号やその住所名データを飛ばして、対応地図位置をSpotできたら、締まりがいいなぁ、、とのことで、標準内臓アプリの「マップ」アプリに”郵便番号”で連携しました。
で、「マップ」アプリだけなら、あれなんで、「Google Map」」アプリも連携して、動作してみました。
「マップ」アプリと「Googe Map」アプリの”郵便番号”で連携動作の差異がありました。
・「マップ」アプリ
→ 郵便番号の標準住所位置?のSpot
・「Googe Map」アプリ
→ 郵便番号の標準住所位置?のSpotと標準住所エリアの区域の表示
でした。
また、”郵便番号”のDrag&Dropを「マップ」アプリや「メモ」アプリには飛ばせたけど、「Google Map」」アプリには、飛ばせんでした。(当然といえば当然かもね。。)
尚、「Google Map」アプリを使うのは、info.plistに使用切符が必要でした。
前掲のText分の続き・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Text(hitarry[hitidx].addr_full) .frame(maxWidth:.infinity, alignment:.leading) // === List -> Map .onTapGesture { let urlString:String! = selection == 0 // == Get Set Apple Map のURL ? vm.getMapUrl(hitarry[hitidx].poststr) // == Get Set Apple Map ,Google MapのURL : vm.getMapUrl_GooglOrAppleMap(hitarry[hitidx].poststr) // == Mapアプリの起動 === if let url = URL(string: urlString) { UIApplication.shared.open(url) } } // == onTapGesture // === SpliterView -> drag -> map .onDrag { //dragTextを元にNSProviderに連携 provider.registerDataRepresentation(forTypeIdentifier: UTType.utf8PlainText.identifier as String, visibility: .all) { (completion) -> Progress? in completion(hitarry[hitidx].poststr.data(using: .utf8) , nil) return nil } return provider } // == onDrag |
VM内では、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // == Get Set Apple Map のURL func getMapUrl(_ postNumStr:String) ->String! { let urlString: String! urlString = "http://maps.apple.com/?q=" + "\(String(describing: postNumStr))" return urlString } // == Get Set Apple Map ,Google MapのURL func getMapUrl_GooglOrAppleMap(_ postNumStr:String) ->String! { let urlString: String! if UIApplication .shared.canOpenURL(URL(string:"comgooglemaps://")!) { urlString = "comgooglemaps://?q=" + "\(String(describing: postNumStr))" } else { urlString = "http://maps.apple.com/?q=" + "\(String(describing: postNumStr))" } return urlString } |
ちびりちびりで書いてた郵便番号表示アプリのMy備忘ログは、これにて一応でEOFです。
ではでは。