Google マップ SDK を使用しているアプリケーションがあります。ユーザーがマップ ビュー コントローラーでワイルド スワイプを行っている場合 (たとえば、100 マイル)、ユーザーを現在の場所に戻したいと考えています。
この機能をマップに実装する方法は?
画面上でマップを 100 マイル移動させたワイルド スワイプを追跡するにはどうすればよいですか?
スワイプの強さを知るには?また、ズームレベルに基づいて、スワイプすると現在の場所から何マイル移動しますか?
前もって感謝します!
Google マップ SDK を使用しているアプリケーションがあります。ユーザーがマップ ビュー コントローラーでワイルド スワイプを行っている場合 (たとえば、100 マイル)、ユーザーを現在の場所に戻したいと考えています。
この機能をマップに実装する方法は?
画面上でマップを 100 マイル移動させたワイルド スワイプを追跡するにはどうすればよいですか?
スワイプの強さを知るには?また、ズームレベルに基づいて、スワイプすると現在の場所から何マイル移動しますか?
前もって感謝します!
ワイルドスワイプとはどういう意味ですか? 1 回のスワイプで地図を 100 マイル移動しますか? その場合はUIPanGestureRecognizer
、マップ ビューに を追加できます。
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:aGMSMapView action:@selector(pan:)];
[aGMSMapView addGestureRecognizer:panRecognizer];
パンジェスチャの状態が終了かどうかを検出するメソッドを実装します。その場合は、マップ ビューの中心を確認して、どこまで移動したかを判断します。
-(void)pan:(UIPanGestureRecognizer*) gestureRecognizer
{
if(gestureRecognizer.state == UIGestureRecognizerStateEnded)
{
//get the center of map view, and calculate distance
CGPoint *point = aGMSMapView.center;
CLLocationCoordinate2D coor = [aGMSMapView.projection coordinateForPoint:point];
CLLocation *mapCenter = [[CLLocation alloc]initWithLatitude:coor.latitude longitude:coor.longitude];
CLLocationDistance d = [mapCenter distanceFromLocation:currentLocation];
if (d>= 106900)
{
//move your map view and do whatever you want...
}
}
}