【发布时间】:2017-02-07 16:59:13
【问题描述】:
我正在显示GMSMapView,但无法显示餐厅、酒店、商店等商业场所。根据 docs 使用 mapType kGMSTypeNormal 应该提供该请求。
另外,地图类型为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 doc GMSMapView 有一个名为mapStyle 的属性。当我尝试访问此属性时,Xcode 给了我一个编译器错误:
“GMSMapView”类型的值没有成员“mapStyle”
【问题讨论】:
标签: swift google-places-api google-maps-sdk-ios