アプリ方AppleMap, GoogleMapに遷移する

AppleMapへの遷移

AppleMapへ遷移する時は最小単位のURLhttp://maps.apple.com/?に対してパラメータをくっつけていくことでどのように開くかを指定することができる。

以下のコードは東京タワーの緯度経度を中心にピンを立てるサンプルです。

let latitude = 35.658584
let longitude = 139.7454316
let pinName = "東京タワー"

let urlString: String = "http://maps.apple.com/?ll=\(latitude),\(longitude)&q=\(pinName)"
let encodeUrlString: String = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
if let url = URL(string: encodeUrlString) {
    UIApplication.shared.open(url)
}

パラメータの一覧は以下ドキュメントにまとまっています。https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

GoogleMapへの遷移

GoogleMapへ遷移するときもhttps://maps.google.com/mapsという最小単位にパラメータをくっつけていくことでどう開くかを指定することができます。

let latitude = 35.658584
let longitude = 139.7454316
let pinName = "東京タワー"

let urlString = "https://maps.google.com/maps?q=\(pinName)¢er\(latitude.description),\(longitude.description)"
let encodeUrlString: String = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
if let url = URL(string: encodeUrlString) {
    UIApplication.shared.open(url)
}

パラメータは以下のドキュメントを参照

https://developers.google.com/maps/documentation/urls/ios-urlscheme

備考

AppleMapがダウンロードされていない場合はApple Storeへの遷移します、GoogleMapの場合はWebでも開きますがダイアログでApple Storeへの遷移が促されます。

URLをencodeしていますが、日本語がURLに混じって言える状態でencodeせずに遷移させると動作しません。

Swift

前の記事

AdMobで広告を追加する
SwiftUI

次の記事

Button