2017-08-16 2 views
1

Ich habe eine Google Maps-Ansicht in meiner App mit einem Pin.Google Maps SDK öffnet nicht Pin

func setUpGoogleMapView() { 

    let camera = GMSCameraPosition.camera(withLatitude: self.site.latitude, longitude: self.site.longitude, zoom: 15.0) 
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 
    mapView.frame = googleMapView.frame 
    self.view.addSubview(mapView) 

    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2D(latitude: self.site.latitude, longitude: self.site.longitude) 
    marker.title = self.site.name 
    marker.map = mapView 
} 

Wenn ich UIApplication.shared.openURL in einer URL manuell aufrufen mit der Abfrage vorbei, öffnet es in einem anderen Modus (die Anmerkung den Namen des Ortes nicht zeigt, zeigt Breite & Länge statt) oder nicht geöffnet wenn der Benutzer Google Maps nicht installiert hat.

@IBAction func directionsButtonPressed(_ sender: UIButton) { 
    if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) { 

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

Wie kann ich öffnen Google Maps in Safari UIApplication.shared.openURL mit?

Wie soll ich Google Maps haben, um den Pin mit dem Namen des Ortes anzuzeigen, wenn ich UIApplication.shared.openURL anrufen?

Ich möchte den gleichen Richtungen Modus nach der Verwendung UIApplication.shared.openURL haben.

screenshot

+0

Können Sie den Screenshot der gewünschten Ausgangs schreiben Sie suchen? – Hooda

+0

Danke. Es würde mich nicht erlauben, ein Bild hinzuzufügen, also habe ich einen Link hinzugefügt – NatukaKh

+0

Der Screenshot, den Sie gezeigt haben, ist die Ausgabe, die Sie suchen? – Hooda

Antwort

1

Swift 3.x:

let strPlaceName = "batumi+botanical+garden" as String! 
let url = URL(string: "https://www.google.com/maps?q="+strPlaceName!) 

if UIApplication.shared.canOpenURL(url!) { 
    if #available(iOS 10.0, *) { 
     UIApplication.shared.open(url!, options: [:], completionHandler: nil) 
    } else { 
     // for iOS 10, below is deprecated 
     UIApplication.shared.openURL(url!) 
    } 
} 

Objective-C:

NSString *strPlaceName = @"Batumi+Botanical+Garden"; 
NSString *str = [NSString stringWithFormat:@"https://www.google.com/maps/place/%@",strPlaceName]; 
NSURL *url = [NSURL URLWithString:str]; 

if([[UIApplication sharedApplication] canOpenURL:url]) {  
    if([[UIDevice currentDevice].systemVersion floatValue] >= 10.0){ 
     [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; 
    } else { 
     // for iOS 10, below is deprecated 
     [[UIApplication sharedApplication] openURL:url]; 
    } 
} 
+0

Vielen Dank! Das funktioniert wirklich gut! Ich kann es aber nicht upvote, es sagt, ich habe noch nicht genug Ruf :) @Hooda – NatukaKh

+0

@NatukaKh Gut zu wissen, dass es funktioniert hat! Du brauchst 15 Reputation um zu verbessern. Wenn Sie möchten, können Sie später upgraden, wenn Sie genug Reputation haben. – Hooda

+0

Wird es tun :) Danke nochmal! – NatukaKh