簡體   English   中英

在 2D 和 3D 地圖視圖之間切換(pitchEnabled)

[英]Switching between 2D and 3D mapview (pitchEnabled)

我有一個 iOs 地圖應用程序,默認情況下使用 3D 視圖。 因此, MKMapCamera設置在開頭(音高值為45 )。 但是,我想為用戶提供禁用 3D 地圖的選項,以防他們更喜歡 2D 地圖。 所以,為了使視圖之間的開關,我將(改變相機的俯仰0在2D中, 45在3D)和禁用/啟用改變它( setPitchEnabled = NO/YES )。

出於某種原因,在禁用音高后,即在我曾經設置[_mapView setPitchEnabled:NO] ,我無法再啟用 3D 視圖,我不能[_mapView setPitchEnabled:NO]更改為YES (在嘗試更改它之后)回到YES ,當它在NSLog打印時, pitchEnabled將其值保持為NO )。 因此我無法從 2D 回到 3D。 你知道是什么導致了這種情況嗎? 這非常令人困惑,因為我嘗試以相同的方式啟用和禁用旋轉( [_mapView setRotationEnabled:NO]YES ),在這種情況下,它可以在這兩種情況下完美地工作。 但不是與音高 - 禁用音高后,我無法再啟用它。 下面是在開始時設置相機的函數 ( setCamera ) 和在模式之間切換的函數 ( toggleViewMode )。

//Function that sets the 3D-view in the beginning

-(void)setCamera {

    CLLocationCoordinate2D userLocation;
    userLocation.latitude = self.locationManager.currentLatitude;
    userLocation.longitude = self.locationManager.currentLongitude;

    if(_cameraSet == YES) {
        NSLog(@"Camera is set already, return");
        return;
    }


    if ([_mapView respondsToSelector:@selector(camera)] && _show3Dmap) {

        _cameraSet = YES;
        [_mapView setShowsBuildings:NO];

        MKMapCamera *newCamera = [[_mapView camera] copy];
        [newCamera setPitch:45.0];
        [newCamera setHeading:0.0];
        [newCamera setAltitude:500.0];

        [_mapView setCamera:newCamera animated:NO];
    } 
}


//Toggle between 2D and 3D
-(void)toggleViewMode:(BOOL)birdView {

    if(birdView == YES) {
        _mapView.camera.pitch = 45;
        [_mapView setPitchEnabled:YES];
    } else {
        _mapView.camera.pitch = 0;
        [_mapView setPitchEnabled:NO];
    }

}

}

在別處找到了答案。 您還必須設置相機。

這是一個示例相機初始化:

MKMapCamera *newCamera = [[self.mapView camera] copy];
[newCamera setPitch:45.0];
[newCamera setHeading:90.0];
[newCamera setAltitude:500.0];
[self.mapView setCamera:newCamera animated:YES];

請參閱蘋果文檔中的討論。

[ https://developer.apple.com/documentation/mapkit/mkmapview/1452277-camera#discussion][1]

您必須使用 pitch 屬性在 2D 和 3D 地圖視圖之間切換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM