Show own location in map views (#7375)

* show own location on static sharing

* show own location on live sharing

* add tests and changelog

* check location authorisation, fix center to current user location button

* it moves request to LocationManager in proper service

* add static location viewer service
This commit is contained in:
Flescio
2023-02-20 18:07:03 +01:00
committed by GitHub
parent d15131e9ba
commit 95501bfdde
21 changed files with 267 additions and 36 deletions
@@ -75,7 +75,7 @@ struct LocationSharingMapView: UIViewRepresentable {
mapView.vc_removeAllAnnotations()
mapView.addAnnotations(annotations)
if let highlightedAnnotation = highlightedAnnotation {
if let highlightedAnnotation = highlightedAnnotation, !showsUserLocation {
mapView.setCenter(highlightedAnnotation.coordinate, zoomLevel: Constants.mapZoomLevel, animated: false)
}
@@ -125,11 +125,14 @@ extension LocationSharingMapView {
return LocationAnnotationView(userLocationAnnotation: userLocationAnnotation)
} else if let pinLocationAnnotation = annotation as? PinLocationAnnotation {
return LocationAnnotationView(pinLocationAnnotation: pinLocationAnnotation)
} else if annotation is MGLUserLocation, let currentUserAvatarData = locationSharingMapView.userAvatarData {
// Replace default current location annotation view with a UserLocationAnnotatonView when the map is center on user location
return LocationAnnotationView(avatarData: currentUserAvatarData)
} else if annotation is MGLUserLocation {
if let currentUserAvatarData = locationSharingMapView.userAvatarData {
// Replace default current location annotation view with a UserLocationAnnotatonView when the map is center on user location
return LocationAnnotationView(avatarData: currentUserAvatarData)
} else {
return LocationAnnotationView(userPinLocationAnnotation: annotation)
}
}
return nil
}