質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

499閲覧

swift Aの後にBを実行したい

dandadan

総合スコア14

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2022/01/18 01:42

編集2022/01/19 02:31

swift

1//gesture(ピンチやズームなど)があった際は、追跡をOFFに 2 internal func mapView(_ mapView: GMSMapView, willMove scrollaGestures: Bool) { 3 if scrollaGestures { 4 sceneAndCanvas.timerBool = false //追跡OFF 5 } 6 7//gesture(ピンチやズームなど)があった際は、zoomlevelを再読み込みする 8 if scrollaGestures { 9 var currentzoom = 0.0 10 currentzoom = Double(map.googleMap.camera.zoom) 11 print("currentzoomlevel",currentzoom) 12 } 13 }

上記はアプリ上にGoogleマップを表示して
マップをピンチアップしたりする部分のコードです。

目的:ズームした後にzoomlevelを取得したい
現在:ズームするために、画面にタッチした瞬間のzoomlevelを取得する(ズーム後のzoomlevelを取得するにはもう一度タッチする必要がある)

時間を遅らせる処理は試したのですが、ピンチアップの時間次第では意味がなく目的通りにはなりませんでした。
A(画面タッチ)の後にB(zoomlevelの取得)を処理したい場合、どのようにするのがいいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Google MapsのMaps SDK for iOS?は使ったことがないのですが・・
まだ回答がついていないようでしたので入力してみます。

時間を遅らせる処理は試したのですが、ピンチアップの時間次第では意味がなく目的通りにはなりませんでした。

遅らせるという考え方だとダメなのですね。


- mapView:willMove:
Called before the camera on the map changes, either due to a gesture, animation (e.g., by a user tapping on the "My Location" button) or by being updated explicitly via the camera or a zero-length animation on layer.
(機械翻訳)ジェスチャー、アニメーション(ユーザーが "My Location" ボタンをタップするなど)、またはカメラやレイヤー上の長さのないアニメーションによって明示的に更新されることによって、地図上のカメラが変更される前に呼び出されます。
https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p?hl=ja#ae1f53e0d056bf4d246356134ec594612

この関数は変更される前ですので、他を検討した方が良さそうですかね。


- mapViewDidFinishTileRendering:
Called when all tiles have been loaded (or failed permanently) and labels have been rendered.
(機械翻訳)すべてのタイルがロードされ(または永久に失敗し)、ラベルがレンダリングされたときに呼び出されます。
https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p?hl=ja#adaaa744f353baf4fc3f41b3b6801fba5

「レンダリングされたとき」ということで、こちらはどうでしょうか?


- mapView:didChangeCameraPosition:
Called repeatedly during any animations or gestures on the map (or once, if the camera is explicitly set).
(機械翻訳)マップ上のアニメーションやジェスチャーの際に繰り返し呼び出されます(カメラが明示的に設定されている場合は1回だけ)。
https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p?hl=ja#aabd01d59d7680799a0c24d3c8b5e4622

「カメラ」と記載されていましたので、iPhoneの物理的な「カメラ」のことかな?と思ったのですが、Maps SDK for iOSではズームレベルなどのプロパティを持っているクラスがGMSCameraPositionなのですね。
こちらも試してみたらどうでしょうか?


見当違いなことを書いていましたらすみません・・

投稿2022/01/21 08:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問