나는 GMSMapView
을 표시하지만 레스토랑, 호텔, 상점 등의 비즈니스 장소는 표시 할 수 없습니다. docs에 따르면 mapType kGMSTypeNormal
을 사용하여 해당 요청을 제공해야합니다.GMSMapView에 비즈니스 POI가 표시되지 않았습니다. didTapPOIWithPlaceID가 호출되지 않았습니다.
In addition, business POIs appear by default on the map when the map type is kGMSTypeNormal
불행히도 공원, 명소, 병원 등의 "공식"POI 만 표시합니다.
또한이 "공식"POI 중 하나를 탭하면 GMSMapViewDelegate
멤버 함수 mapView:didTapPOIWithPlaceID:name:location:
이 호출 될 것이라고 예상했지만 어디에서 탭했는지는 알 수 없으므로 호출 할 함수가 없습니다. 나는 일시적으로 해당 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 docGMSMapView
에 따른 mapStyle
라는 속성을 가지고 있다는 것입니다.
Value of type 'GMSMapView' has no member 'mapStyle'
정답입니다. 그것은 또한 나의 의심 이었지만 처음부터 그것을 설치했기 때문에 나는 그것을 믿을 수 없었다. 'pod install '직후에'pod update'를하면 상처를 입히지 않는다는 것 (때로는 매우 유용 할 수 있음)이 나온다. 감사! – tr03lf