volga-volga / react-native-yamap

React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
152 stars 83 forks source link

Реализовать направление для маркера #86

Closed alexdarh closed 2 years ago

alexdarh commented 2 years ago

Очень не хватает функции направления для маркера. Пытался рендерить маркеры как компоненты Image (через children) но у них не отрабатывает style={{ transform: [{ rotate: "45deg" }]}} Очень не хватает функции )

alexdarh commented 2 years ago

Или посоветуйте как реализовать это не штатными методами )

artymir commented 2 years ago

Делал похожую вещь через canvas

ownikss commented 2 years ago

Сейчас функционал не реализован, странно что через transform не работает

Нужно добавить возможность кастомизации стиля для элементов: https://yandex.ru/dev/maps/mapkit/doc/ios-ref/full/Classes/YMKIconStyle.html

Если кто-то готов сделать пулл реквест было бы отлично. Если нет - попробуем найти ресурсы на задачу. Сама задача не сложная, если кто-то давно хотел попробовать нативный модуль - очень хороший способ начать

ownikss commented 2 years ago

Решали немного другую задачу, но косвенно затронули этот функционал

Стояла задача реализовать анимированный поворот маркера (машина при движении по карте). Через setState в js коде был бы слишком низкий fps, поэтому реализовали ref метод для маркера

  public animatedRotateTo(angle: number, duration: number)

Для решения вашей задачи можно написать небольшую обертку и делать rotate в useEffect

function MyMarker(props) {
  const {rotate, ...p} = props;
  const marker = useRef();
  useEffect(() => {
    if (marker.current) {
      // не уверен, что 0 отработает корректно, поэтому лучше использовать какое-то положительное число
      marker.current.animatedRotateTo(rotate, 10);
    }
  }, [rotate])
  return <Marker ref={marker} {...p} />
}