5

Apple マップにはデリゲート メソッドがあります。

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

マップのスクロールまたはパンを終了すると発生しますが、Googleマップのそのような方法が見つかりませんでした。方法があります

- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position

しかし、マップがまだスクロールされている間、このメソッドは起動し続けます。私はそれを望んでいません。スクロールが終了したときにのみプロパティを変更する必要があります。

4

3 に答える 3

12

最新の SDK リリース バージョン 1.4.0 - 2013 年 7 月には、新しいデリゲート メソッドが追加されました。

- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position 

カメラの動きやスクロール操作の最後にトリガーされます

于 2013-07-27T12:50:31.100 に答える
1

次のようなものを追加する機能要求があります。

https://code.google.com/p/gmaps-api-issues/issues/detail?id=4722

それまでの間、通常のタイマーを使用して、最後のタイマー呼び出し以降にマップの位置が変更されたかどうかを確認することで、おそらく回避できます。そうでない場合は、ユーザーがマップの移動を停止したため、プロパティを更新できます。

于 2013-04-11T10:33:34.457 に答える
0

注意してください idleAtCameraPosition は、指を離したときではなく、マップの移動が停止したときです。

また、Google SDK iOS 1.7 の時点で、まだ地図上に指を置いている場合でも、早期にトリガーされることに気付きました。

そのため、オーバーレイ/マーカーを再描画するために使用している場合、早すぎてスタッタリングが発生する可能性があります。

GSMapView をサブクラス化し、PanGestureRecognizer >> State ENDED を追加して、指が離されたときに取得する必要がありました。

https://github.com/clearbrian/GoogleMapiOS_TapEndedGestureを参照して ください

于 2014-02-21T11:54:28.983 に答える