将Google地图相机移动到某个位置

ch1*_*era 14 location google-maps ios gmsmapview swift

我正在使用谷歌地图视图,我想在地图上添加一个按钮,当点击时,将按钮移动到特定位置.我目前有一个按钮插座和一个连接到该按钮的动作.

@IBAction func locationTapped(_ sender: Any) {
    print("tapped")
    let location = GMSCameraPosition.camera(withLatitude: place.latitude, longitude: place.longitude, zoom: 17.0)

    mapView.camera = location
}
Run Code Online (Sandbox Code Playgroud)

place存在但由于某种原因,相机不会让步.我尝试过不同版本的代码并查看了Google Maps文档,但没有一个选项可以产生结果.谁能告诉我我做错了什么?

Phe*_*ter 26

GMSMapView类具有以下功能:

animate(to: GMSCameraPosition)
Run Code Online (Sandbox Code Playgroud)

所以在你的代码示例中,而不是这样做:

mapView.camera = location
Run Code Online (Sandbox Code Playgroud)

试着这样做:

mapView.animate(to: location)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Moh*_*ari 16

Swift3Swift4中将 标记移动到当前位置使用:

func myLocationBtnAction(_ sender: UIButton) {
            mapView.moveCamera(GMSCameraUpdate.setTarget(CLLocationCoordinate2D(latitude: (mapView.myLocation?.coordinate.latitude)!, longitude: (mapView.myLocation?.coordinate.longitude)!), zoom: 16))
Run Code Online (Sandbox Code Playgroud)

对于特定的位置使用此:

let camera = GMSCameraPosition.camera(withLatitude: lat, longitude: lng, zoom: 16)
            mapView?.camera = camera
            mapView?.animate(to: camera)
Run Code Online (Sandbox Code Playgroud)

并且不要忘记扩展GMSAutocompleteViewControllerDelegate当前位置