- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 MKUserTrackingBarButtonItem
按钮来允许用户自动跟踪他们在 map 上的位置。问题是当他们点击这个按钮时,它被放大得太远了。我希望它以指定的缩放级别(即跨度)开始。我怎样才能做到这一点?
当用户点击按钮更改为 MKUserTrackingModeFollow
时,它似乎使用与用户上次手动更改为相同的缩放级别(即在 map 上使用手势)。尝试通过 setRegion
或 setVisibleMapRect
指定不同的缩放级别不会影响模式更改为 MKUserTrackingModeFollow
时将使用的缩放级别。
尝试覆盖 mapView:didChangeUserTrackingMode:
以设置区域会导致模式更改回 MKUserTrackingModeNone
。示例:
- (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];
}
}
如果我尝试在设置区域后立即重置模式,则在用户静止时效果很好,但在用户移动时会缩小。
最简单的解决方案是,如果有一种方法可以通过向 MKUserTraking 发送我的跨度值来简单地指定诸如缩放级别之类的东西。但是,既然那似乎不存在,我还能做什么呢?
最佳答案
我遇到了同样的问题,但使用了不同的方法来解决它。您可以为此使用 MapCamera 函数而不是那个按钮。
在每个新位置执行此操作:
MKMapCamera *newCamera = [MKMapCamera cameraLookingAtCenterCoordinate:[newLocation coordinate]
fromEyeCoordinate:[oldLocation coordinate]
eyeAltitude:2000];
[mapView setCamera:newCamera animated:TRUE];
并玩转 eyeAltitude。
如果用户手动放大或缩小,您可以从 mapview.camera.altitude 读取高度值,当用户手动使用 map 时也不要更新相机。
关于ios - 使用 MKUserTrackingBarButtonItem 时如何指定缩放级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192956/
我在 View Controller 的 viewDidLoad 中添加了 MKUserTrackingBarButtonItem 的实例如下: MKUserTrackingBarButtonItem
在我的应用程序中,我向我的 UINavigationBar 添加了一个 MKUserTrackingBarButtonItem,这方便地消除了对 CLLocationManager 的需要。但是,我希
除了处理 mapView:didUpdateUserLocation: 委托(delegate)方法外,我目前正在尝试寻找一种方法来检测何时使用 MKUserTrackingBarButtonItem
我正在使用 MKUserTrackingBarButtonItem 在 MKMapView 上定位。我以编程方式将它作为 navigationItem 添加到导航 Controller 上。我的问题是
有没有办法在 MKUserTrackingBarButtonItem 附加到 navigationItem.rightBarButtonItem 时移动它?现在它看起来像这样: 我希望它看起来更像 A
历史问题。 https://developer.apple.com/documentation/mapkit/mkusertrackingbutton现在可用。 当你在ios上使用普通 map 应用时
我正在评估从 MapKit 到 Mapbox 的转换。 除了 MKUserTrackingBarButtonItem 之外,我已经找到了所有功能的等效项。 let trackingButton = M
我正在使用 MKUserTrackingBarButtonItem 按钮来允许用户自动跟踪他们在 map 上的位置。问题是当他们点击这个按钮时,它被放大得太远了。我希望它以指定的缩放级别(即跨度)开始
(使用 Xcode 6) 我的跟踪按钮位于导航栏的右侧,它不会触发该方法,我不知道为什么,这应该是正确的方法。 按钮本身是有功能的。 - (void)viewDidLoad { [super
我正在使用 MKUserTrackingBarButtonItem 来切换我的 MKMapView 的 usertrackingMode。 是否可以将此按钮移出我的工具栏并将其放置在普通的 UIVie
谁能告诉我如何在 Interface Builder 中将 MKUserTrackingBarButtonItem 添加到我的工具栏?我的 UIToolbar 上有一个 UIBarButtonItem
我想在 map 上拥有与 MKUserTrackingBarButtonItem 相同的功能,但我想以编程方式进行。 通常使用我在 ViewController 上执行此操作 - (void) vie
使用针对 IOS6 最低操作系统的 XCode 5,我创建了这样的栏按钮项目 self.navigationItem.rightBarButtonItem = [[MKUserTrackingBarB
我是一名优秀的程序员,十分优秀!