12

我正在编写一个带有显示一些注释的 mapView 的应用程序。

现在我想在 mapView 中显示用户的当前位置。我使用以下代码获取当前位置:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)location

我在日志中获取当前位置的详细信息

2013-10-14 12:03:34.291 AppName[13200:a0b] (
"<+7.35000000,+47.32000000> +/- 5.00m (speed -1.00 mps / course -1.00) @ 10/14/13, 12:03:34 PM Central European Summer Time")

现在我没有将位置作为这个蓝色脉冲点放入 mapView 中。

请给出一些提示。

4

4 回答 4

31

您可以通过以下方式启用用户位置:

mapView.showsUserLocation = YES;

如果你想以这个位置为中心:

[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];

如果您正在使用:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{

if ([annotation isKindOfClass:[MKUserLocation class]]) {
    return nil;
}

// etc...


}
于 2013-10-14T10:13:33.423 回答
3

在 iOS10 中,在将键 NSLocationWhenInUseUsageDescription 添加到我的 Info.plist 之前,我无法显示用户位置的蓝点,并带有关于如何在应用程序中使用位置信息的字符串描述。

于 2017-08-22T21:50:31.297 回答
1

在 xCode 9 中,您可以使用情节提要文件来完成

在此处输入图像描述

于 2018-03-21T10:46:53.553 回答
0

我遇到了同样的问题,因为我删除了 AnnotationViews 的类型检查代码,因为我不再需要它了。所以我制作了@incmiko 答案的 Swift 版本。

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

    guard !annotation.isKind(of: MKUserLocation.self) else { return nil }

    //create annotation view

    return MKAnnotationView()
}
于 2019-02-04T00:41:33.210 回答