我在我的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());
}
我在这做了什么错?
任何帮助都会表示赞赏。
答案 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();