Как показать сообщения «Поверните налево» «Поверните направо» на маршруте, выделенном между двумя точками на карте Google? - PullRequest
0 голосов
/ 01 февраля 2010

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

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

1 Ответ

2 голосов
/ 01 февраля 2010

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

Для каждого GStep вы можете вызвать .getDescriptionHtml (), который вернет отформатированное описание для этого отдельного шага. Как «Возьмите 1-й направо на A5099 / 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 (), потому что детали структуры время от времени меняются и меняются в зависимости от страны маршрута и языка или локали хоста.

...