1

タイトルが示すように、どの座標を指定しても同じ場所が表示されます。

これが私のコードです:

ストーリーボードを使用しており、ビュー内にサブビューがあります。サブビューのタイプは GMSMapView で、正しくリンクされています。

.h

@property (strong, nonatomic) IBOutlet GMSMapView *mymap;

.m

@implementation DealViewController
{
    GMSMapView *mapView_;
}


@synthesize mymap=_mymap;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.view layoutIfNeeded];

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                            longitude:151.2086
                                                                 zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 0, 300, 300) camera:camera];
    mapView_.myLocationEnabled  = YES;
    mapView_.mapType = kGMSTypeSatellite;
    mapView_.delegate = self;
    self.mymap=mapView_;

}

私もこれを試しましたが、同じ結果になります:

mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];

上記の何が問題になっていますか?

4

4 に答える 4

11

同じ問題について何時間もの残酷な調査を行った結果、viewDidLoad メソッドは次のようになることがわかりました。

- (void)viewDidLoad
{
    [super viewDidLoad];

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:obj.latitude
                                 longitude:obj.longitude
                                 zoom:12];
    self.mapView.camera = camera;
}

つまり、この場合、「[GMSMapView mapWithFrame:CGRectMake(0, 0, 300, 300) camera:camera];」のような値を self.mapView に割り当てないでください。プロパティの「camera」値を設定するだけです。

これは私にとってはうまくいきます。これが他の誰かの時間も節約できることを願っています。

于 2013-08-02T21:24:28.647 に答える