Google方向API提供错误的距离和持续时间

时间:2014-08-01 21:41:50

标签: android google-maps google-direction

我在我的Android APP中实现了谷歌地图api功能。 谷歌地图api给我一个正确的路线(路线),但它给出了两个终点之间的错误距离和时间。

我已经在Android中以XML格式实现了这个google map api。 以下是我用来获取两个端点之间距离的代码。 (我正在使用“驾驶”模式)。

public String getDistanceText(Document doc) {
        NodeList nl1 = doc.getElementsByTagName("distance");
        Node node1 = nl1.item(0);
        NodeList nl2 = node1.getChildNodes();
        Node node2 = nl2.item(getNodeIndex(nl2, "text"));
        Log.i("DistanceText", node2.getTextContent());
        return node2.getTextContent();
    }

    public int getDistanceValue(Document doc) {
        NodeList nl1 = doc.getElementsByTagName("distance");
        Node node1 = nl1.item(0);
        NodeList nl2 = node1.getChildNodes();
        Node node2 = nl2.item(getNodeIndex(nl2, "value"));
        Log.i("DistanceValue", node2.getTextContent());
        return Integer.parseInt(node2.getTextContent());
    } 

以下是获取两个终点之间的持续时间的代码:

public String getDurationText(Document doc) {
        NodeList nl1 = doc.getElementsByTagName("duration");
        Node node1 = nl1.item(0);
        NodeList nl2 = node1.getChildNodes();
        Node node2 = nl2.item(getNodeIndex(nl2, "text"));
        Log.i("DurationText", node2.getTextContent());
        return node2.getTextContent();
    }

    public int getDurationValue(Document doc) {
        NodeList nl1 = doc.getElementsByTagName("duration");
        Node node1 = nl1.item(0);
        NodeList nl2 = node1.getChildNodes();
        Node node2 = nl2.item(getNodeIndex(nl2, "value"));
        Log.i("DurationValue", node2.getTextContent());
        return Integer.parseInt(node2.getTextContent());
    }

我在这做了什么错?

任何帮助都会表示赞赏。

1 个答案:

答案 0 :(得分:1)

您读错了节点。当你想要路线的完整持续时间时,你必须阅读最后的durartion-Element

来自

NodeList nl1 = doc.getElementsByTagName("duration");   
Node node1 = nl1.item(0);
NodeList nl2 = node1.getChildNodes();

NodeList nl1 = doc.getElementsByTagName("duration");
Node node1 = nl1.item(nl1.getLenght()-1);
NodeList nl2 = node1.getChildNodes();