Обновить маршрут на Google Maps в режиме вождения - PullRequest
0 голосов
/ 28 ноября 2018

Я использую Google Map, теперь я показываю полилинию ч / б моего текущего местоположения до пункта назначения, используя Google Direction API с анимацией движущегося маркера.

Теперь, если я изменю свой путь во время движения, то какмогу ли я обновить этот путь от моего текущего местоположения до места назначения.

Вот мой код

@ Override

public void onDirectionSuccess(Direction direction, String rawBody) {
    if (direction.isOK()) {

        route = direction.getRouteList().get(0);


        ArrayList<LatLng> directionPositionList = route.getLegList().get(0).getDirectionPoint();
        mMap.addPolyline(DirectionConverter.createPolyline(this, directionPositionList, 8, Color.BLUE));

    } else {
        Toast.makeText(DriversActivity.this, direction.getStatus(), Toast.LENGTH_SHORT).show();
    }

Здесь, в методе OnDirectionSuccess, я получаю направление.Я не хочу называть это снова и снова, потому что предыдущая строка также там с новой.

Кто-нибудь может мне помочь ???

1 Ответ

0 голосов
/ 28 ноября 2018

пожалуйста, сначала добавьте эту функцию в действие

  private void route(AbstractRouting.TravelMode travelMode, final LatLng end) {
this.end = end;
DataShahrManager dataShahrManager = DataShahrManager.getInstance(activity);
if (dataShahrManager.getMyLocation() != null) {

  start = new LatLng(dataShahrManager.getMyLocation().getLatitude(),
      dataShahrManager.getMyLocation().getLongitude());
  if (end != null) {
    mapsFragment.getProgressBar().setVisibility(View.VISIBLE);
    Routing routing = new Routing.Builder()
        .travelMode(travelMode)
        .withListener(this)
        .alternativeRoutes(false)
        .waypoints(start, end)
        .language("fa")
        .key("your key")
        .build();
    routing.execute();
  }
} else {
  mapsFragment.getLocationProgressBar().setVisibility(View.VISIBLE);
  mapsFragment.startLocationFinding();
  mapsFragment.setUpMyLocationUsingMap();
  if (activity != null) {
    Toast.makeText(activity, R.string.finding_your_location, Toast.LENGTH_SHORT).show();
  }
  mapsFragment.setOnLocationFoundListener(() -> route(AbstractRouting.TravelMode.DRIVING, end));
}

}, поэтому добавьте эту строку в кнопку

      route(AbstractRouting.TravelMode.DRIVING, businessEntity.getLatLng());
...