如何在Google地图上两个地方之间突出显示的路线上显示“向左转”“向右转”消息?

时间:2010-02-01 05:55:46

标签: iphone cocoa-touch google-maps map-directions

我正在开发一个应用程序,在该应用程序中,我需要显示一条消息,显示用户点击路线上的位置后,在Google地图上的路线帮助下突出显示的位置。

这个Groute类提供了很多信息,比如两个地方之间的距离,持续时间,但它没有提供有关方向的信息。

1 个答案:

答案 0 :(得分:2)

从GRoute中,您可以使用.getStep(i)获取GRoute中每个步骤的GStep对象。 .getNumSteps()告诉你GRoute中有多少GSteps。

对于每个GStep,您可以调用.getDescriptionHtml(),它将返回该单个步骤的格式化描述。如“将第一个正确带到 A5099 / Coronation St ”或“在环形交叉路口,将第3个出口带到 A6 / Garstang Rd 前往 Preston “。

要将GStep与折线的特定顶点相关联,请扫描所有GSteps,查找最后一个,其中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(),因为结构的详细信息会不时更改,具体取决于路由的国家/地区以及主机语言或区域设置。