0

Google マップを使用するのは初めてで、マップ上でテーピングして、ユーザーがポイントしたい場所を選択できるようにしました。アプリケーションの開始時に、デバイスの場所を指し示します。ユーザーはどのようにデバイスを希望の場所に変更しますか?

4

3 に答える 3

1

まず、ユーザーのタップのポイントを取得します。次に、その CGPoint の座標値を取得し、mapView の中心として設定します。

-(void)handlePan:(UIPanGestureRecognizer *)recognizer
{
    // Get tap point
    CGPoint tapPoint = [recognizer locationInView:[recognizer superView]];

    // Convert CGPoint to CLLocationCoordinate2D
    CLLocationCoordinate2D center = [self.mapView.projection coordinateForPoint:tapPoint];

    // Set camera of mapView
    GMSCameraPosition * camera = [GMSCameraPosition cameraWithLatitude:center.latitude longitude:center.longitude zoom:self.mapView.camera.zoom];
    [self.mapView setCamera:camera];
}
于 2013-06-22T07:30:09.780 に答える
0

または、メソッドを実装しGMSMapViewDelegateて使用することもできます- mapView:didTapAtCoordinate:

于 2013-06-28T10:14:10.630 に答える
0

マップ ビューの中心点を移動するために、このようなことを行うことで、ビュー ポートを移動できます。

GMSCameraPosition *sydney = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
[mapView_ setCamera:sydney];

(Google Map SDK では、カメラを使用してマップ全体の一部をターゲットにするように、カメラ位置と呼んでいます)

Checkout https://developers.google.com/maps/documentation/ios/views?hl=ja カメラセクションの移動

ここで、彼がタップしたポイントに移動してタスクを完了するために使用します。次の手順を実行する必要があります。

  1. iVar またはプロパティを定義して、タップ ポイントの位置 (lat/lng) を記録します。

    CLLocationCoordinate2D *currentTapLocation;

  2. didTapAtCoordinate デリゲートで、その位置をフェッチする

    - (void) mapView:(GMSMapView *) mapView didTapAtCoordinate:(CLLocationCoordinate2D) coordinate{
        currentTapLocation = coordinate;
    }
    
  3. GMSCamera を作成し、カメラを currentTapLocation に設定します

    - (void) mapView:(GMSMapView *) mapView didTapAtCoordinate:(CLLocationCoordinate2D) coordinate{
        currentTapLocation = coordinate;
    
        GMSCameraPosition *newCameraPosition = [GMSCameraPosition cameraWithLatitude:currentTapLocation.latitude
                                                            longitude:currentTapLocation.longitude
                                                                 zoom:6];
        [mapView_ setCamera:newCameraPosition];
    }
    
  4. オプションの手順: setCamera を直接ではなく新しい位置にアニメーション化する場合は、次のようにします。

    [mapView_ animateWithCameraUpdate:[mapView_ setCamera:newCameraPosition];];

    それ以外の

    [mapView_ setCamera:newCameraPosition];

于 2013-07-19T04:53:21.997 に答える