Как показать сообщения "Поверните налево" "Поверните направо" на маршруте, выделенном между двумя точками на карте Google?

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

Есть этот класс Groute, который предоставляет большую часть информации, такой как расстояние, продолжительность между двумя местами, но он не дает информацию о направлении.

1 ответ

Решение

Из GRoute вы можете использовать.getStep(i), чтобы получить объект GStep для каждого шага в GRoute. .getNumSteps() сообщает вам, сколько GSteps содержится в GRoute.

Для каждого GStep вы можете вызвать.getDescriptionHtml(), который вернет отформатированное описание для этого отдельного шага. Например, "Возьмите 1-й направо на A5099 / Coronation St " или "На кольцевой развязке сверните на 3-й съезд на A6/Garstang Rd, направляющейся в Престон ".

Чтобы связать GStep с конкретной вершиной полилинии, просмотрите все GStep в поисках последнего с помощью getPolylineIndex(), который меньше или равен указанной вершине. Как это:

      var v = 66; // The vertex you are looking for

      var targetStep = route.getStep(0);
      for (var j=0; j<route.getNumSteps(); j++) {
        var step = route.getStep(j);
        if (step.getPolylineIndex() < v) targetStep = step;
      }
      GLog.writeHtml(targetStep.getDescriptionHtml());

Не пытайтесь анализировать.getDescriptionHtml(), потому что детали структуры время от времени меняются и меняются в зависимости от страны маршрута и языка хоста или локали.

Другие вопросы по тегам