yandex / mapkit-ios-demo

MapKit iOS demo
Other
84 stars 27 forks source link

Вращение/Поворот всех Placemark при вращении/повороте карты #209

Closed AndrRok closed 1 year ago

AndrRok commented 1 year ago

Как сделать чтобы метки внутри коллекции вращались вместе с картой? С ниже приведенным кодом не работает

private let customIconStyle: YMKIconStyle = YMKIconStyle(anchor: CGPoint(x: 0.5, y: 1.0) as NSValue, rotationType: YMKRotationType.rotate.rawValue as NSNumber, zIndex: 1, flat: true, visible: true, scale: 1 , tappableArea: nil)

let placemark = clusterizedPlacemarkCollection?.addPlacemark(with: point, image: UIImage(named: "image" ?? UIImage(), style: customIconStyle)

placemark?.addTapListener(with: self) placemark?.geometry = point placemark?.userData = MyModel(id: pharm.id ?? 0 , point: point, isRuler: true)

YandexMapKit commented 12 months ago

MapKit не поддерживает метки, вращающиеся вместе с картой.

Можно подписаться на события камеры и поворачивать каждую метку на азимут камеры при каждом движении камеры. Поворот метки осуществляется с помощью Placemark.setDirection(). А для того чтобы иконка вращалась вместе с меткой нужно выставить iconStyle.styleType = StyleType.Rotate. Но работать это будет не очень хорошо. Во-первых, будет заметное визуальное отставание поворота метки от поворота карты. Во-вторых, при большом количестве меток это приведёт к заметным тормозам работы карты.

Попробуйте рассмотреть вариант отрисовки объектов с помощью текстурированных полигонов: PolygonMapObject.setPattern()