5

マップの中心をカスタムの場所に初期化したい。初期化に使用するコードは次のとおりです。

-(void)viewDidLoad{
    [super viewDidLoad];
    //mapView
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.0109
                                                            longitude:28.998
                                                                 zoom:6];
    self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    [self.mapView setCenter:CGPointMake(41.0109,28.998)];
}

このコードを実行すると、カメラに指定した位置 (41.0109,28.998) ではなく、グリニッジを中心としたマップが表示されました。

コードをデバッグして self.mapView.camera の位置を出力すると、次の出力が表示されますGMSCameraPosition 0x17742ee0: target:(41.011, 28.998) bearing:0.000 zoomLevel:6.000 viewingAngle:0.000 lookAhead:0.000。カメラの位置を設定できたのに、グリニッジの位置で開くのはなぜですか?

編集:

mapView は、メイン ページに追加したサブビュー (UIView) であり、中心の位置を設定および変更しようとしていたことに注意してください。これが私のストーリーボードのスナップショットです: ここに画像の説明を入力

mapView を変更しようとすると、マップの場所を設定できません。しかし、ウィンドウのメイン ビューである「ビュー」を使用すると、マップの中心をうまく変更できます。

その理由はなぜですか?

GMSMapView の起動位置を設定するにはどうすればよいですか?

編集2 このプロジェクトのソースコードはここにあります

4

2 に答える 2