如何比较谷歌方向api返回的距离和持续时间字符串

时间:2013-03-01 07:06:02

标签: java android google-maps

由于路线谷歌地图api返回驱动器距离和原点和目的地之间的时间。现在如果我必须比较java中的时间和距离值,我们该怎么做呢。 例如:距离1 = 22km距离2 = .98km      时间1 = 1小时2分钟时间2 = 3分钟

现在,如果我必须比较更大的时间和距离字符串,我们该怎么做?

2 个答案:

答案 0 :(得分:0)

您错误地标记了这一点。这与Javascript而不是Java有关。他们“不是”同一种语言。

至于你的问题。您可以直接访问json从方向检索值。

alert(JSON.stringify(response['routes'][0]));

在你的OK检查之后,这条线直接放好应该有助于你开始。

答案 1 :(得分:0)

您需要将这些值转换为数字,例如公里距离和时间分钟 - 例如22和0.98,分别为62和3为您的例子。然后你可以简单地比较数字。

我不知道api是否总是以千米和小时/分钟返回值,你应该确保这一点,然后“简单地”解析你得到的值。对于距离,这将是这样的:

double distance1 = Double.valueOf("22km".replace("km,""));
double distance2 = Double.valueOf(".98km".replace("km,""));
if (distance1 < distance2) {
    System.out.println("distance1 is smaller");
} else if (distance2 < distance1) {
   System.out.println("distance2 is smaller");
} else {
   System.put.println("both distances are the same.");
}

对于时间部分,解析会有点复杂。

是的,我知道你可以使用正则表达式做得更优雅但是我不得不试着让它们正确,所以我采用了简单的方法。