Как отобразить метку с определенной информацией об углах в приложении «Карты» (Apple Maps или Google Maps)? - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу отобразить информацию о выстреле в приложении Карты.У выстрела есть 2 основных свойства:

  1. местоположение - точка, из которой был произведен выстрел
  2. направление / угол - относительно северного компаса

ИспользованиеВ следующем фрагменте кода я могу открыть приложение «Карты» с определенной меткой места.

CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(gps_lat.doubleValue, gps_long.doubleValue);
MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:nil];
MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
[mapItem setName:self.pUnit.unitLabel];
[mapItem openInMapsWithLaunchOptions:nil];

Можно ли добавить информацию об угле / направлении вместе с меткой места ?По существу, отметка должна вращаться вместе с картой , чтобы четко отображать направление выстрела.

Sample place mark with angle

1 Ответ

0 голосов
/ 28 ноября 2018
  • вы можете добиться поворота маркера с помощью карт Google и свойства поворота маркера.
  • хотя вам нужен код obj-c, мой быстрый код поможет вам понять, что я имел в виду.

  • замените MARKER_IMAGE_NAME своим изображением

1) настроить карту Google

let camera = GMSCameraPosition.camera(withLatitude: firstPoint.latitude,
                                                          longitude: firstPoint.longitude, zoom: 14)
let navHeight = (self.navigationController?.navigationBar.frame.size.height)! + 20
let frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height - navHeight)

let GMapView = GMSMapView.map(withFrame: frame, camera: camera)
self.view.addSubview(GMapView)

2) подготовить маркер

let bearing:Double = 90
var marker = GMSMarker()
marker.icon = UIImage(named: MARKER_IMAGE_NAME)
marker.appearAnimation = GMSMarkerAnimation.pop

3) применить вращение

marker.rotation = bearing

4) добавить маркер на карту Google

marker.map = GMapView
...