私は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マップのドキュメントを調べましたが、どのオプションでも結果が出ていません。誰かが私が間違っていることを教えてもらえますか?
GMSMapViewクラスには次の関数があります。
animate(to: GMSCameraPosition)
だからあなたのコードサンプルでは、これを行う代わりに:
mapView.camera = location
これを試してください:
mapView.animate(to: location)
お役に立てれば!
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
現在の場所
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
}
Objective-cの場合、メソッドは次のとおりです。
[mapView moveCamera:[GMSCameraUpdate setTarget:<CLLocationCoordinate2DMake>]];