it-swarm.com.ru

Как открыть приложение Google Maps с выпавшим пин-кодом? - Свифт

У меня есть этот код, чтобы открыть приложение Google Maps с определенным местоположением, и оно работает, но мне нужно лишь прикрепить булавку к этому местоположению, возможно ли это?

if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {

                UIApplication.shared.openURL(URL(string:
                    "comgooglemaps://?center=\(self.location.coordinate.latitude),\(self.location.coordinate.longitude)&zoom=14&views=traffic")!)
            } else {
                print("Can't use comgooglemaps://");
            }

Как это сделать?

4
Zizoo

Попробуй это

if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
        UIApplication.shared.open(URL(string:"comgooglemaps://?center=\(self.location.coordinate.latitude),\(self.location.coordinate.longitude)&zoom=14&views=traffic&q=\(self.location.coordinate.latitude),\(self.location.coordinate.longitude)")!, options: [:], completionHandler: nil)
    } else {
        print("Can't use comgooglemaps://")
    }
}
18
RajeshKumar R

Сначала откройте Info.plist как Source Code (щелкните правой кнопкой мыши на файле Info.plis, затем выберите Source Code) и добавьте следующее:

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

Далее, чтобы было проще открывать Google Карты, создайте такую ​​функцию:

func openGoogleMaps() {
    if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
        UIApplication.shared.openURL(URL(string:
            "comgooglemaps://?center=\(myLatitude),\(myLongitude)&zoom=14&views=traffic")!)
    } else {
        print("Can't use comgooglemaps://")
    }
}

Всякий раз, когда вы хотите открыть Google Карты с заданной координатой, вы просто вызываете функцию openGoogleMaps().

Для дополнительной проверки Карты URLs и Карты SDK для iOS

5
Emm

Swift 3, iOS 10

let lat = 0.0
let lon = 0.0

if UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!) {
    UIApplication.shared.open(URL(string: "comgooglemaps://?center=\(lat),\(lon)&zoom=14&views=traffic&q=loc:\(lat),\(lon)")!, options: [:], completionHandler: nil)
} else {
    print("Can't use comgooglemaps://")
    UIApplication.shared.open(URL(string: "http://maps.google.com/maps?q=loc:\(lat),\(lon)&zoom=14&views=traffic")!, options: [:], completionHandler: nil)
}
2
Mamdouh El Nakeeb
if UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!) {
        UIApplication.shared.open(URL(string: "comgooglemaps://?center=\(self.latitude),\(self.longitude)")!, options: [:], completionHandler: nil)
    } else {
         print("Opening in Apple Map")

    let coordinate = CLLocationCoordinate2DMake(self.latitude, self.longitude)
    let region = MKCoordinateRegionMake(coordinate, MKCoordinateSpanMake(0.01, 0.02))
    let placemark = MKPlacemark(coordinate: coordinate, addressDictionary: nil)
    let mapItem = MKMapItem(placemark: placemark)
    let options = [
        MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: region.center),
        MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: region.span)]
    mapItem.name = theLocationName
    mapItem.openInMaps(launchOptions: options)
    }

Используйте этот код для открытия на карте Google, если он установлен, иначе откройте на карте Apple по умолчанию.

2
Srijan Kumar

Вы можете использовать это:

if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
    UIApplication.shared.openURL(URL(string:"comgooglemaps://?center=\(self.location.coordinate.latitude),\(self.location.coordinate.longitude)&zoom=14&views=traffic&q=\(self.location.coordinate.latitude),\(self.location.coordinate.longitude)")!)
} else {
    print("Can't use comgooglemaps://")
}
1
Nahush Sarje