3D地図を表示するにあたって目的地をMKMapViewの中心にアノテーションを置き
その目的地をMap中心に捉えながら、目的地を中心とした半径200mの円周上にM移動し続ける。
といった実装をしたいのですが上手く行きません。
ObjectiveC
1// 東京スカイツリーの座標 2 m_targetLocation = CLLocationCoordinate2DMake(35.710033, 139.8187); 3 m_cameraLocation = CLLocationCoordinate2DMake(35.710043, 139.8087); 4 cr.center = m_targetLocation; 5 6 // 縮尺 0.01 7 cr.span = MKCoordinateSpanMake(0.01, 0.01); 8 [_mapView setRegion:cr animated:YES]; 9 10 _mapView.mapType = MKMapTypeHybridFlyover; 11 [self addAnnotationToCoordinate:m_targetLocation title:@"東京スカイツリー" subTitle:@"住所:住所が入ります。"]; 12 13 MKMapCamera *camera = [MKMapCamera cameraLookingAtCenterCoordinate:m_targetLocation 14 fromEyeCoordinate:m_cameraLocation 15 eyeAltitude:200.0]; 16 17 [self.mapView setCamera:camera]; 18 [self.mapView setShowsBuildings:YES]; 19
以下は試したものを記載しています。
- "m_cameraLocation"のfromEyeCoordinateを更新して
[_mapview setCamera:]すれば出来るかな?と思ったのですが出来ませんでした。
Objectivec
1- (void)startAnimation 2[UIView animateWithDuration:1.0 3 animations:^{ 4 5 float theta = 5.0; 6 float lat = cosf(theta)*(m_cameraLocation.latitude + 0.00001); 7 float lon = sinf(theta)*(m_cameraLocation.longitude + 0.00001); 8 m_cameraLocation = CLLocationCoordinate2DMake(lat, lon); 9 10 CLLocationDistance eyeAltitude = 200.0; 11 12 MKMapCamera *camera = [MKMapCamera cameraLookingAtCenterCoordinate:m_targetLocation 13 fromEyeCoordinate:m_cameraLocation 14 eyeAltitude:eyeAltitude]; 15 [UIView beginAnimations:nil context:nil]; 16 [UIView setAnimationCurve:UIViewAnimationCurveLinear]; 17 [UIView setAnimationDuration:2.5]; 18 self.mapView.camera = camera; 19 [UIView commitAnimations]; 20 21 } completion:^(BOOL finished) { 22 [self startAnimation]; 23 }]; 24
- Mapの右上に表示されている方位磁石?をタップすると座標位置を捉えながら北へ向くのを見てhedingを変更すれば簡単なのかな?と思ったのですがこちらも上手く行きませんでした。
objectivec
1- (void)startAnimation { 2 MKMapCamera *nextCamera = [MKMapCamera cameraLookingAtCenterCoordinate:m_targetLocation 3 fromDistance:200 4 pitch:_mapView.camera.pitch 5 heading:_mapView.camera.heading - 5]; 6 [_mapView setCamera:nextCamera]; 7 [self startAnimation]; 8}
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/30 09:56
2016/09/30 10:33 編集
2016/10/03 00:32
2016/10/03 04:50
2016/10/03 05:55