지도 보기에서 현재 위치 확대 (Zoom on Current Location in Map View)


문제 설명

지도 보기에서 현재 위치 확대 (Zoom on Current Location in Map View)

I have a map view and it is set to zoom in on the users current location.  The problem is that if the user changes location when looking at the map, it zooms back into the current location.  It's making it impossible to use the functionality for what I'm planning to do.  I'm going to have multiple pins on the map but the user won't be able to look at all of them if the location is changing.  Even when my device is sitting on my desk, the location keeps changing slightly so the map is constantly taking the user from whatever part of the map they are viewing back to a zoomed view of their current location.  Does anyone have any ideas on this?

‑ (void)foundLocation:(CLLocation *)loc
{
    CLLocationCoordinate2D coord = [loc coordinate];

    // Zoom the region to this location
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 250, 250);
    [worldView setRegion:region animated:YES];

    [activityIndicator stopAnimating];
    [locationManager stopUpdatingLocation];
}

‑ (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    CLLocationCoordinate2D loc = [userLocation coordinate];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
    [worldView setRegion:region animated:YES];
}

참조 솔루션

방법 1:

The problem is these lines:

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
[worldView setRegion:region animated:YES];

That is you, zooming the view back to the user's location with a zoom factor of 250,250. So if you don't want the view to be zoomed back after the user moves it, don't do that!

방법 2:

We can stop receiving current location for the first time,

‑ (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    CLLocationCoordinate2D loc = [userLocation coordinate];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
    [worldView setRegion:region animated:YES];
    [locationManager stopUpdatingLocation];
    locationManager.delegate = nil;
}

방법 3:

Zoom in to current location with Swift:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    let locValue:CLLocationCoordinate2D = manager.location!.coordinate
    let region : MKCoordinateRegion = MKCoordinateRegionMakeWithDistance(locValue, 250,250)
    self.mapView.setRegion(region, animated: true)

}

(by raginggoatmattThilina Chamath Hewagamarealtimez)

참조 문서

  1. Zoom on Current Location in Map View (CC BY‑SA 3.0/4.0)

#mkmapview #iOS






관련 질문

지도 보기에서 현재 위치 확대 (Zoom on Current Location in Map View)

Is there a way to restrict MKMapView Zoomlevel in iOS6 (Is there a way to restrict MKMapView Zoomlevel in iOS6)

MKMapView가 약 180도 스크롤되지 않습니다. (MKMapView does not scroll around 180 degrees)

mapView에서 길찾기 버튼을 만드는 방법은 무엇입니까? (How to create get direction button in mapView?)

MKMapview를 사용하는 동안 MB의 메모리 사용량이 발생하고 ARC를 사용하는 동안 View가 사라질 때 메모리가 해제되지 않습니다. (While using MKMapview causing MBs of memory usage and using ARC it not releasing memory when View Disappears)

UITextFieldShouldChange가 두 번 호출됨 (UITextFieldShouldChange being called twice)

Mapview Xcode에서 위치 업데이트 (Update Location in Mapview Xcode)

MKMapView 폐색이 주석을 제거합니까? (Does MKMapView occlusion cull it's annotations?)

값이 없는 경우 HTML5 로컬 저장소 개체는 무엇을 반환합니까? (What does the HTML5 Local Storage object return if there is no value?)

MKMapView에서 사용자 위치를 찾는 데 문제가 있음 (Problems Trying to Find User Location in MKMapView)

MKMapView에 주석을 추가할 때 백그라운드에서 앱 충돌 (Crashes app in background when adding annotation on MKMapView)

모든 프로젝트 Swift 5에서 1개의 MapView를 공유하는 방법 (How to Share 1 MapView in all Project Swift 5)







코멘트