MKMapView

// 緯度経度から座標を求める
CGPoint point = [_mapView convertCoordinate:annotation.coordinate toPointToView:_mapView];

// 座標から緯度経度を求める
CLLocationCoordinate2D coordinate = [_mapView convertPoint:point toCoordinateFromView:_mapView];

// 指定された緯度経度を地図の中心とする
[_mapView setCenterCoordinate:coordinate animated:YES];



_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
現在表示中の地図上に、指定座標の有無を判定する
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

CLLocationCoordinate2D selectedCoordinate = xxxxx;

// 現在の地図上に、指定座標が存在するかどうか判定する
CGPoint point = [_mapView convertCoordinate:selectedCoordinate toPointToView:_mapView];
if (CGRectContainsPoint(_mapView.bounds, point)) {
    // 現在の地図上に指定座標が存在する場合
} else {
    // 現在の地図上に指定座標が存在しない場合
}

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
2点間の距離をメートル単位で計算
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
MKMapPoint point1 = MKMapPointForCoordinate(coordinate1);
MKMapPoint point2 = MKMapPointForCoordinate(coordinate2);
CLLocationDistance distance = MKMetersBetweenMapPoints(point1, point2);


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
表示した地図の画像を写真アルバムに登録する
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- (void) saveMapImage:(id) sender
{
  UIGraphicsBeginImageContext(self.mapView.frame.size);
   CGContextRef context = UIGraphicsGetCurrentContext();
   [self.mapView.layer renderInContext:context];
   UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

  UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ピンをタッチせずにコールアウトを出す
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- (void)mapView:(MKMapView *)aMapView didAddAnnotationViews:(NSArray *)views
{
  [mapView selectAnnotation:[mapView.annotations lastObject] animated:YES];
}

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
指定座標へ移動する(その1)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
[_mapView setCenterCoordinate:coordinate animated:YES];

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
指定座標へ移動する(その2)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
MKCoordinateSpan span = kDefaultCoordinateSpan;
self.mapView.region = MKCoordinateRegionMake(kDefaultCLLocationCoordinate, span);


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ピン追加時のアニメーション方法
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    /**
     ビュー追加時に呼ばれます。
     @param mapView         マップビュー
     @param annotationViews 追加するアノテーションビュー配列
     */
    - (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)annotationViews
    {
        // 未使用とする
        [annotationViews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            
            if ([obj isKindOfClass:[SAWAnnotationView class]]) {
                
                SAWAnnotationView *view = (SAWAnnotationView *)obj;
                
                CGRect frame = view.frame;
                view.frame = CGRectOffset(frame, 0, -500);
                [UIView animateWithDuration:.4f
                                 animations:^{
                                     view.frame = frame;
                                 }];
            }
        }];
    }
最終更新:2017年04月26日 13:07