it-swarm.com.ru

Перемещение Google Maps Camera в местоположение

Я работаю с Google Maps View и хочу добавить на карту кнопку, которая при нажатии на нее переместит камеру в определенное место. В настоящее время у меня есть кнопка выхода и действие, связанное с кнопкой. 

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

    mapView.camera = location
}

place существует, но по какой-то причине камера не сдвинется с места. Я пробовал разные версии кода и просматривал документацию по Google Maps, но ни один из вариантов не дал результатов. Может кто-нибудь сказать мне, что я делаю не так?

10
ch1maera

Класс GMSMapView имеет следующую функцию:

animate(to: GMSCameraPosition)

Итак, в вашем примере кода вместо этого:

mapView.camera = location

Попробуйте сделать это:

mapView.animate(to: location)

Надеюсь это поможет!

17
Pheepster

in Swift3 и Swift4 для перемещения маркера в текущую позицию используйте это:

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

и для определенного местоположения используйте это:

let camera = GMSCameraPosition.camera(withLatitude: lat, longitude: lng, zoom: 16)
            mapView?.camera = camera
            mapView?.animate(to: camera)

и не забудьте продлитьGMSAutocompleteViewControllerDelegateдля текущего местоположения 

11
Mohsen mokhtari

Swift 2.3

Этот код используется для моей цели. В каком маркере используется событие касания, которое перемещает положение камеры на карте. Надеюсь, вы найдете свое решение.

 func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
        mapView.selectedMarker = marker
        var point = mapView.projection.pointForCoordinate(marker.position)
        let camera = mapView.projection.coordinateForPoint(point)
        let position = GMSCameraUpdate.setTarget(camera)
        mapView.animateWithCameraUpdate(position)
        return true
    }
0
Jaydeep

Для Objective-c метод:

[mapView moveCamera:[GMSCameraUpdate setTarget:<CLLocationCoordinate2DMake>]];
0
Er. Vihar