0

特定の座標で地球を回転させるにはどうすればよいですか? URLから特定の座標に地球を回転させたい。なんとかできましたが、アプリを閉じたときだけです。バックグラウンドにあるときは、私が与えている座標に関係なく、南極近くの場所に移動するだけです。

コードは次のとおりです。

- (void)moveToLocation
{
    WhirlyGlobe::GeoCoord startCoord;

    // If the app wasn started from URL
    if ([[GlobalValues sharedGlobalValues] enteredFromURL])
    {
        float lat = [[GlobalValues sharedGlobalValues] sharedLat];
        float lon = [[GlobalValues sharedGlobalValues] sharedLon];

        // Set the shared location
        startCoord = WhirlyGlobe::GeoCoord::CoordFromDegrees(lon, lat);
        // Calculate the rotation and make it
        Eigen::Quaternionf startLoc = [self.theView makeRotationToGeoCoord:startCoord keepNorthUp:YES];
        self.theView.delegate = [[[AnimateViewRotation alloc] initWithView:self.theView rot:startLoc howLong:5.0] autorelease];
    }
}

また、どうすればズームできますか?アプリがURLから起動すると、回転+ズームが実行されますが、バックグラウンドにあるときはズームされません。

4

2 に答える 2

0

AnimateViewRotation デリゲートを保持してみてください。裏で公開された場合、アニメーションが消える場合があります。

また、可能であれば WhirlyGlobe コンポーネントに切り替えることをお勧めします。使い方はずっと簡単です。

于 2012-08-29T18:47:51.903 に答える