- ВКонтакте
- РћРТвЂВВВВВВВВнокласснРСвЂВВВВВВВВРєРСвЂВВВВВВВВ
- РњРѕР№ Р В Р’В Р РЋРЎв„ўР В Р’В Р РЋРІР‚ВВВВВВВВРЎР‚
- Viber
- Skype
- Telegram
Смещение карты с позиционированием и изменением zoom
На экране отображается карта с добавленными плейсмарками по размерам родительского UIView
. Необходимо при нажатии на плейсмарк:
- позиционировать его в центре карты
- изменить
zoom
(увеличить карту) - поднять нижнюю шторку
bottom sheet
- сместить карту на высоту нижней шторки, с учетом того, что плейсмарк должен оставаться в середине карты вне зависимости от высоты самой карты
В данный момент реализовал сначала переход к нужной координате на карте в нужном увеличении, а потом в коллбеке применение офсета для плейсмарка.
let placemarkPoint = YMKPoint(latitude: placemark.latitude, longitude: placemark.longitude)
let zoomPosition = YMKCameraPosition(target: placemarkPoint, zoom: placemark.zoom, azimuth: 0, tilt: 0)
let zoomAnimation = YMKAnimation(type: .smooth, duration: 0.1)
mapView.mapWindow.map.move(with: zoomPosition, animation: zoomAnimation) { _ in
// вот здесь реализовано смещение с применением оффсета
}
Что хотелось бы: одновременная анимация перехода и смещения, чтобы они не реализовывались друг за другом.
Дополнительно рассматривал реализацию с помощью YMKProjections
, но так и не смог правильно его применить для реализации поставленной задачи.