【发布时间】:2018-02-25 19:47:07
【问题描述】:
我正在使用 Google Distance Matrix API 来计算从一个点到另一个点的行驶距离 + 时间。
我想在距离搜索的结果中添加 if..elseif..else 语句,以根据距离(例如 10 公里)的大小来改变答案,但我是 JS 的新手并且似乎无法弄清楚将语句粘贴到我的代码中的位置。有什么建议吗?
这是我的代码:
$(function(){
function calculateDistance(origin, destination) {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [origin],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
$('#result').html(err);
} else {
var origin = response.originAddresses[0];
var destination = response.destinationAddresses[0];
if (response.rows[0].elements[0].status === "ZERO_RESULTS") {
$('#result').html("We can't seem to find "
+ origin + ". Are you sure you entered a valid postcode and place?");
} else {
var distance = response.rows[0].elements[0].distance;
var duration = response.rows[0].elements[0].duration;
var distance_value = distance.value;
var distance_text = distance.text;
var duration_value = duration.value;
var duration_text = duration.text;
var kilometer = distance_text.substring(0, distance_text.length - 3);
$('#result').html("It is " + kilometer + " kilometer from " + origin + " to " + destination + " and it takes " + duration_text + " to drive.");
}
}
}
$('#distance_form').submit(function(e){
event.preventDefault();
var origin = $('#origin').val();
var destination = $('#destination').val();
var distance_text = calculateDistance(origin, destination);
});
});
【问题讨论】:
-
你想完成什么?发布的代码中有 if/else 语句,它们不起作用吗?你试过什么没用?您在 javascript 控制台中遇到任何错误吗?
-
@geocodezip 感谢您的回复。我正在尝试针对不同的行驶距离范围完成不同的答案。现在它只显示所有距离的一个答案(“它是“+公里+”从“+起点+”到“+目的地+”的公里,并且需要“+ duration_text +”来开车。”),但我想有不同的答案,例如距离更大,如果小于 10 公里。
标签: javascript jquery if-statement google-maps-api-3