Перейти к / увеличить функцию текущего местоположения (MapKit) - PullRequest
8 голосов
/ 11 августа 2011

У меня есть mapView, который увеличивает текущее местоположение, используя viewDidLoad:

#define METERS_PER_MILE 1609.344

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];

    mapView.showsUserLocation=TRUE;

    // zoom to  a specific area
    CLLocationCoordinate2D zoomLocation;
    zoomLocation.latitude = -28.994167;
    zoomLocation.longitude = 134.866944;

    MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 1900*METERS_PER_MILE, 1900*METERS_PER_MILE);
    MKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion];    

    // make sure the Google water mark is always visible
    mapView.autoresizingMask =
    (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

    [mapView setRegion:adjustedRegion animated:YES];        

    mapView.delegate=self;

    searchBar.delegate = self;
}

Это отлично работает. Я добавил панель поиска и функцию для перехода к определенному адресу. Это тоже отлично работает. Теперь я хочу добавить кнопку, чтобы вернуться к текущему местоположению. Можете ли вы дать мне руку, пожалуйста?

Приветствия

Ответы [ 5 ]

10 голосов
/ 11 августа 2011

Вам нужно установить центр вашей карты в текущее местоположение по нажатию этой кнопки. Скажи так:

- (IBAction)showCurrentLocation {        
    [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];
}
2 голосов
/ 03 февраля 2013

Вы также можете попробовать:

mapView.userTrackingMode=YES;
mapView.userTrackingMode=NO;
1 голос
/ 29 мая 2015

Вы можете связать этот IBAction с вашей UIButton, он собирается переместить карту в текущее местоположение и увеличить ее.

@IBOutlet weak var mapView: MKMapView!

@IBAction func zoomToUserCurrentLocation(sender: AnyObject) {
    if self.mapView != nil {
        self.mapView.setRegion(MKCoordinateRegionMake(
            self.mapView.userLocation.coordinate, 
            MKCoordinateSpanMake(0.1, 0.1)
        ), animated: true)
    }
}

MKCoordinateSpan определяет область, охватываемую областью карты, чем меньше эти значения, тем ближе масштаб на карте.

0 голосов
/ 21 июля 2017

ДЛЯ SWIFT

Добавить эту строку в действие кнопки yourMKMapView.setUserTrackingMode(.follow, animated: true)

убедитесь, что вы добавили yourMKMapView.showsUserLocation = true в viewDidLoad()

0 голосов
/ 27 июля 2014
- (void)showCurrentLocation{

    MKMapPoint annotationPoint = MKMapPointForCoordinate(self.mapView.userLocation.coordinate);
    MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.0, 0.0);
    [self.mapView setVisibleMapRect:zoomRect animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...