2013-05-03 3 views
0

지도보기가 있으며 사용자의 현재 위치를 확대하도록 설정되어 있습니다. 문제는 사용자가지도를 볼 때 위치를 변경하면 현재 위치로 확대됩니다. 그것은 내가하고자하는 일에 기능을 사용하는 것을 불가능하게 만들고 있습니다. 지도에 핀이 여러 개 있지만 위치가 바뀌면 사용자는 모든 핀을 볼 수 없습니다. 내 장치가 내 책상에 앉아 있더라도 위치가 약간 계속 변경되어지도가 계속해서 사용자가 현재 표시된 위치의 확대 된보기로 돌아가는지도의 어떤 부분에서 다시 이동하게됩니다. 아무도 이것에 대한 아이디어가 있습니까?지도보기의 현재 위치 확대하기

- (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]; 
} 
+0

중지 첫 번째 이벤트 후지도를 이동 ... 당신은해야 사용자의 위치를 ​​획득하면지도를 배치하십시오. 도움이 필요하면 포지셔닝 코드를 표시하십시오. – iwasrobbed

답변

2

문제는이 라인이다 : 입니다

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

당신, 250,250의 줌 배율로 다시 사용자의 위치에 뷰를 확대. 따라서 사용자가 뷰를 이동 한 후에 뷰를 축소하지 않으려면 그렇게하지 마십시오!

0
우리는 처음으로 현재 위치 수신을 중지 할 수

, 스위프트와 현재 위치에서

- (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; 
} 
+0

작동하지 않습니다. – user3722523

+0

위치 업데이트를 중단하고 대리인을 지정하지 않으면 제공된 지역을 확대하지 않습니다. – realtimez

0

확대 :

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) 

}