web-dev-qa-db-ja.com

アプリのボタンを押すと、どうすればGoogleマップを開くことができますか?

私はこのアプリを持っていて、GoogleマップまたはAppleマップを使用して、ユーザーがアプリのボタンを押したときに開くマップを使用します。これを行うにはどうすればよいですか?へのリンクのようなものはありますか?アプリを開く地図か、それとも何か別のものですか?正しい方向に向けていただければ、とても助かります。ありがとう!次のようにボタンを設定しました:

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {

    for touch in (touches ) {
    let location = touch.locationInNode(self)
    let node = self.nodeAtPoint(location)

    if node.name == "openMaps" {

     //code to open google maps or Apple maps....

    }
15
coding22

これを使って:

if node.name == "openMaps" {
    let customURL = "comgooglemaps://"

    if UIApplication.sharedApplication().canOpenURL(NSURL(string: customURL)) {
        UIApplication.sharedApplication().openURL(NSURL(string: customURL))
    }
    else {
        var alert = UIAlertController(title: "Error", message: "Google maps not installed", preferredStyle: UIAlertControllerStyle.Alert)
        var ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
        alert.addAction(ok)
        self.presentViewController(alert, animated:true, completion: nil)
    }
}

グーグルマップのURLスキームについての詳細情報を見つけることができます ここ

編集:これを機能させるには、info.plistにキーを追加する必要があります。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>googlechromes</string>
    <string>comgooglemaps</string>
</array>

編集:更新ごと Google Maps docs 上記のplistにも「googlechromes」を追加しました。

60
Sman25

ボタンのクリック時に(動作中)次のコードで関数 "directions()"を呼び出します。

func directions() {
    // if GoogleMap installed
    if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
        UIApplication.shared.openURL(NSURL(string:
            "comgooglemaps://?saddr=&daddr=\(Float(event.addressLat)!),\(Float(event.addressLong)!)&directionsmode=driving")! as URL)

    } else {
        // if GoogleMap App is not installed
        UIApplication.shared.openURL(NSURL(string:
            "https://maps.google.com/?q=@\(Float(event.addressLat)!),\(Float(event.addressLong)!)")! as URL)
    }
}

LSApplicationQueriesSchemesのinfo.plistを編集します。

enter image description here

願っています!

6
JaspreetKour