volga-volga / react-native-yamap

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

Как строить маршруты на карте? #262

Open KerAm-js opened 8 months ago

KerAm-js commented 8 months ago

В документации к Mapkit есть информация о том, как строить маршруты на карте с помощью. Есть ли реализация этого функционала в данной библиотеке?

KerAm-js commented 8 months ago

У меня получилось построить маршрут. Сначала используем метод Yamap.findDrivingRoutes, чтобы получить данные о маршрутах между двумя точками A и B:

const [points, setPoints] = useState<Array<Point>>([]);

  const getRoutes = () => {
    if (mapRef.current && pointA && pointB) {
      mapRef.current.findDrivingRoutes(
        [pointA, pointB],
        (evt: RoutesFoundEvent<DrivingInfo>) => {
          const arr: Array<Point> = [];
          evt.routes[0].sections.forEach(section =>
            section.points.forEach(point => arr.push(point)),
          );
          setPoints(arr);
        },
      );
    }
  };

Далее используем Polyline для отображения точек: <Polyline points={points} strokeColor={BLUE} strokeWidth={4} />

Возможно, алгоритм не самый эффективный, но хотя бы работает.