2017-02-07 4 views
1

Ich zeige eine GMSMapView, aber kann nicht erreichen, dass Geschäfte wie Restaurants, Hotels, Geschäfte usw. gezeigt haben. Nach der docs mit dem mapType kGMSTypeNormal sollte diese Anfrage stellen.Keine Business-POIs auf GMSMapView angezeigt, didTapPOIWithPlaceID nicht

Leider zeigt es nur "offizielle" POIs wie Parks, Sehenswürdigkeiten, Krankenhäuser und dergleichen.

Außerdem hätte ich erwartet, dass die GMSMapViewDelegate Memberfunktion mapView:didTapPOIWithPlaceID:name:location: aufgerufen wird, wenn ich einen dieser "offiziellen" POIs antippen, aber egal wo ich tippe, bekomme ich die Funktion nicht aufgerufen zu werden. Ich probierte vorübergehend die entsprechende mapView:didTapAtCoordinate: nur um sicherzustellen, dass ich den Delegierten richtig eingerichtet und das funktioniert perfekt.

Hier ist mein Code:

import UIKit 
import GoogleMaps 

class PoiGoogleMapVC: UIViewController, UITextFieldDelegate, CLLocationManagerDelegate, GMSMapViewDelegate { 

    @IBOutlet weak var mainMap: GMSMapView! 

    let locationManager = CLLocationManager() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     mainMap.delegate = self 
     locationManager.delegate = self 

     let camera: GMSCameraPosition = GMSCameraPosition.camera(withLatitude: 48.857165, longitude: 2.354613, zoom: 8.0) 
     self.mainMap.mapType = kGMSTypeNormal 
     self.mainMap.camera = camera 
     locationManager.requestWhenInUseAuthorization() 
    } 

    func mapView(_ mapView: GMSMapView, didTapPOIWithPlaceID placeID: String, name: String, location: CLLocationCoordinate2D) { 
     print("You tapped \(name): \(placeID), \(location.latitude)/\(location.longitude)") 
    } 
} 

Was ein Hinweis auf die Lösung sein könnte, aber an diesem Punkt nur mich verwirrt, ist, dass nach dem api docGMSMapView eine Eigenschaft mapStyle genannt hat. Wenn ich versuche, diese Eigenschaft Xcode zuzugreifen gibt mir einen Compiler-Fehler:

Value of type 'GMSMapView' has no member 'mapStyle'

Antwort

0

Die mapStyle und Business POIs 2.1 in Version hinzugefügt wurde, am 22. September veröffentlicht 2016. Siehe hier:

https://developers.google.com/maps/documentation/ios-sdk/releases#version_21_-_september_22_2016

Vielleicht haben Sie eine ältere Version des SDK?

+0

Das ist die richtige Antwort. Es war auch mein Verdacht, aber seit ich es von Grund auf installiert habe, konnte ich es nicht glauben. Es stellt sich heraus, dass es nicht schadet (und manchmal sehr nützlich sein kann), wenn Sie direkt nach Ihrer Pod-Installation ein 'pod update' durchführen. Vielen Dank! – tr03lf