web-dev-qa-db-ja.com

Googleマップカメラを場所に移動する

私はGoogleマップビューを使用していて、タップするとカメラが特定の場所に移動するボタンを地図に追加したいと思います。現在、ボタンアウトレットとボタンに接続されたアクションがあります。

@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マップのドキュメントを調べましたが、どのオプションでも結果が出ていません。誰かが私が間違っていることを教えてもらえますか?

15
ch1maera

GMSMapViewクラスには次の関数があります。

animate(to: GMSCameraPosition)

だからあなたのコードサンプルでは、​​これを行う代わりに:

mapView.camera = location

これを試してください:

mapView.animate(to: location)

お役に立てれば!

17
Pheepster

Swiftおよび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.

このコードは私の目的で使用されます。マップのカメラ位置を移動するマーカータップイベントが使用されました。あなたがあなたの解決策を見つけることを願っています。

 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
    }
1
Jaydeep

Objective-cの場合、メソッドは次のとおりです。

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