这个谷歌地图 api 'for loop' 以字符串形式返回旅程的持续时间(在本例中最后一行返回"34 分钟"(。
for (var i = 0; i < originList.length; i++) {
var results = response.rows[i].elements;
geocoder.geocode({
'address': originList[i]
},
showGeocodedAddressOnMap(false));
for (var j = 0; j < results.length; j++) {
geocoder.geocode({
'address': destinationList[j]
},
showGeocodedAddressOnMap(true));
outputDiv.innerHTML += originList[i] + ' to ' + destinationList[j] + ': ' + results[j].distance.text + ' in ' + results[j].duration.text + '<br>';
}
}
}
我是否有机会只从results[j].duration.text;
中获取数值并将它们用作整数?最终目标是在一个简单的S = V/t
公式中使用持续时间。
根据 https://developers.google.com/maps/documentation/directions/intro,.text将提供人类可读的输出(包括测量单位(,但值在.value中。
所以results[j].duration.value
应该这样做。
查看 JavaScript 的parseInt
函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
尝试执行应仅为您提取整数值的parseInt(results[j].duration.text)
。如果你想要一个小数,也有parseFloat
。
谢谢你们!
我尝试使用 result[j].duration.value,但它似乎返回的值与事实不符。
我以另一种方式解决了它,即: // Takes only digits from distance string and combine them together
onlyNumbers = results[j].distance.text.replace(/[^d.-]/g, '');
//Convert string to integer
var makeMeInt = parseInt(onlyNumbers);
我注意到必须从 .text 中删除所有不是数字的内容才能使 parseInt 正常工作。