私はGMSMapView
を表示していますが、レストラン、ホテル、ショップなどのビジネススポットを表示することはできません。 docsによると、マップタイプkGMSTypeNormal
を使用してその要求を提供する必要があります。GMSMapViewにビジネスPOIが表示されていない、didTapPOIWithPlaceIDが呼び出されていない
In addition, business POIs appear by default on the map when the map type is kGMSTypeNormal
残念ながら、公園、観光スポット、病院などの「公式」POIのみが表示されます。
さらに、これらの「公式」POIの1つをタップすると、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
というプロパティを持っていることである。ここでは
は私のコードです。私はXcodeのは私にコンパイラエラーが発生します。このプロパティにアクセスしようとすると:
Value of type 'GMSMapView' has no member 'mapStyle'
これは正解です。それは私の疑いでしたが、私は一からそれをインストールして以来、私はそれを信じることができませんでした。 'pod install'の直後に' pod update'を実行すると、痛いことはありません(時には本当に便利です)。ありがとう! – tr03lf