web-dev-qa-db-ja.com

MapViewにユーザーの場所を表示する

いくつかの注釈を表示する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に取得しません。

ヒントを教えてください。

9

これにより、ユーザーロケーションを有効にできます。

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...


}
28
incmiko

IOS10では、キーNSLocationWhenInUseUsageDescriptionをInfo.plistに追加するまで、ユーザーの場所の青い点を表示できませんでした。アプリで場所情報がどのように使用されるかを説明する文字列が含まれています。

3
saswanb

XCode 9では、ストーリーボードファイルでそれを行うことができます

enter image description here

0
Arek

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()
}
0
Nico S.