Tôi đang sử dụng nút MKUserTrackingBarButtonItem
để cho phép người dùng tự động theo dõi vị trí của họ trên bản đồ. Vấn đề là khi họ chạm vào nút này, nó được thu nhỏ quá xa. Tôi muốn nó bắt đầu ở một mức thu phóng cụ thể (tức là khoảng thời gian). Làm thế nào tôi có thể đạt được điều này?Làm cách nào để chỉ định mức thu phóng khi sử dụng MKUserTrackingBarButtonItem?
Khi người dùng nhấn nút để thay đổi thành MKUserTrackingModeFollow
, có vẻ như sử dụng cùng một mức thu phóng mà người dùng cuối cùng đã thay đổi theo cách thủ công (tức là sử dụng cử chỉ trên bản đồ). Cố gắng chỉ định mức thu phóng khác thông qua setRegion
hoặc setVisibleMapRect
không ảnh hưởng đến mức thu phóng sẽ được sử dụng khi chế độ được thay đổi thành MKUserTrackingModeFollow
.
Cố gắng override mapView:didChangeUserTrackingMode:
để đặt khu vực làm cho chế độ được thay đổi trở lại thành MKUserTrackingModeNone
. Ví dụ:
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated {
if (mode == MKUserTrackingModeFollow) {
CLLocationCoordinate2D center = mapView.userLocation.location.coordinate;
MKCoordinateSpan span = MKCoordinateSpanMake(0.002306, 0.001717);
[mapView setRegion:MKCoordinateRegionMake(center, span) animated:YES];
// [mapView setUserTrackingMode:MKUserTrackingModeFollow animated:NO];
}
}
Nếu tôi cố gắng để thiết lập lại chế độ ngay sau khi thiết lập khu vực, nó hoạt động tốt nếu người dùng là tĩnh, nhưng phóng trở ra nếu người dùng đang di chuyển.
Giải pháp đơn giản nhất là nếu có cách đơn giản chỉ định thứ gì đó giống như mức thu phóng cho MKUserTraking bằng cách gửi giá trị khoảng của tôi. Tuy nhiên, vì điều đó dường như không tồn tại, tôi có thể làm gì khác?
Bạn đã tìm thấy một giải pháp cho điều này? Tôi hiện đang đập đầu vào cùng một vấn đề. –