Как показать сообщения "Поверните налево" "Поверните направо" на маршруте, выделенном между двумя точками на карте 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(), потому что детали структуры время от времени меняются и меняются в зависимости от страны маршрута и языка хоста или локали.