В GMSMapView не отображаются бизнес-объекты, не вызывается didTapPOIWithPlaceID

Я показываю GMSMapView, но не могу добиться, чтобы показывались такие деловые места, как рестораны, отели, магазины и т. д. Согласно документам, использующим mapType kGMSTypeNormal должен предоставить этот запрос.

Кроме того, бизнес-POI отображаются на карте по умолчанию, если тип карты kGMSTypeNormal.

К сожалению, он показывает только "официальные" POI, такие как парки, достопримечательности, больницы и тому подобное.

Кроме того, я ожидал, что GMSMapViewDelegate функция-член mapView:didTapPOIWithPlaceID:name:location: вызывается, когда я нажимаю на один из этих "официальных" POI, но независимо от того, где я нажимаю, функция не вызывается. Я временно попробовал соответствующий mapView:didTapAtCoordinate: просто чтобы убедиться, что я правильно настроил делегата, и это работает отлично.

Вот мой код:

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)")
    }
}

Что может быть подсказкой к решению, но на данный момент меня смущает только то, что согласно API GMSMapView имеет свойство под названием mapStyle, Когда я пытаюсь получить доступ к этому свойству Xcode выдает ошибку компилятора:

Значение типа 'GMSMapView' не имеет члена 'mapStyle'

1 ответ

Решение

mapStyle и бизнес-POI были добавлены в версии 2.1, выпущенной 22 сентября 2016 года. Смотрите здесь:

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

Может быть, у вас есть более старая версия SDK?

Другие вопросы по тегам