gpt4 book ai didi

iphone - 将 MKMapView 置于 userLocation 中心(最初)- 仅适用于 iPhone 4?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:27 26 4
gpt4 key购买 nike

我实现了以下 MKMapView 方法,该方法在添加注释后运行。我在 Interface Builder 中将我的 MKMapView map (parishMap) 设置为“显示用户位置”,并且在加载 map View 时,蓝点总是在一秒钟左右的时间内出现在 map View 上。

这是我在 map View Controller 实现中的代码:

// Center map on user location (initially)
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
for(MKAnnotationView *annotationView in views) {
if(annotationView.annotation == parishMap.userLocation) {
MKCoordinateRegion region;
MKCoordinateSpan span;

span.latitudeDelta=0.03;
span.longitudeDelta=0.03;

CLLocationCoordinate2D location=parishMap.userLocation.coordinate;

location = parishMap.userLocation.location.coordinate;

region.span=span;
region.center=location;

[parishMap setRegion:region animated:TRUE];
[parishMap regionThatFits:region];
}
}
}

当我在 iPhone 4 上打开 map View 时, map View 总是(并且几乎是立即)移动到 userLocation 点的中心。但是,当我在 iPhone 3Gs 或 iPod Touch (2010) 上打开 map View 时,它不会以 userLocation 为中心,而是停留在我为 map View 设置的默认缩放/区域。

关于为什么此代码不适用于非 iPhone 4 设备(它们都运行 4.2.x 最新 iOS)的任何想法?

最佳答案

这可能是 GPS 在这些不同设备上锁定位置所需时间的问题。

我建议使用 CLLocationManager 及其委托(delegate)方法使 map 居中。

您可以通过创建 CLLocationManager 实例开始更新位置,将其委托(delegate)属性设置为 self 然后实现:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

根据最新的位置更新,您可以将 map 相应地居中。

关于iphone - 将 MKMapView 置于 userLocation 中心(最初)- 仅适用于 iPhone 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com