Jquery 如何在每行网格单元中显示google距离矩阵API响应?
我想显示一个带有起点和终点的网格,谷歌距离矩阵响应值相同。为此,我在数组中有原点和目标的GPS坐标。我能够构建网格,并且我无法填充API回调中每一行的google距离Jquery 如何在每行网格单元中显示google距离矩阵API响应?,jquery,asynchronous,google-distancematrix-api,Jquery,Asynchronous,Google Distancematrix Api,我想显示一个带有起点和终点的网格,谷歌距离矩阵响应值相同。为此,我在数组中有原点和目标的GPS坐标。我能够构建网格,并且我无法填充API回调中每一行的google距离 var LoadGrid = function () { var defer = $.Deferred(); var tableInfo = ""; $.each(selectedInfo, function (index, travelInfo) { tableInfo += '<tr class="tdInfo
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
var-dataArray=[]代码>
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
//使用Ajax请求从数据库中获取结果
success:function(data.d)
dataArray = data.d.slice();
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
//样本数据集包括:startatitude、startongitude、EndLatitude、EndLongitude、UserName、LoggedTime等
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
在这里,我需要在web应用程序中以网格的形式显示数组,其中一列表示用户移动的每一距离的google距离
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
//这里使用延迟执行
GoogleDistance().then(LoadGrid);
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
//使用谷歌距离矩阵API获取每条记录的距离
var responseCount = [];
var GoogleDistance = function () {
var defer = $.Deferred();
var distanceService = new google.maps.DistanceMatrixService();
responseCount = [];
//dataArray => has the grid row details , which includes gps origin and destination info
for (i = 0; i <= (dataArray.length - 1) ; i++) {
distanceService.getDistanceMatrix(
{
origins: [{ lat: parseFloat(dataArray[i].StartLatitude), lng: parseFloat(dataArray[i].StartLongitude) }],
destinations: [{ lat: parseFloat(dataArray[i].EndLatitude), lng: parseFloat(dataArray[i].EndLongitude) }],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
}, function (response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
//validation
} else {
if (origin == "") responseCount.push(0);
else if (destination == "") responseCount.push(0);
else if (response.rows[0].elements[0].status === "ZERO_RESULTS") responseCount.push(0);
else if (response.rows[0].elements[0].status === "NOT_FOUND") responseCount.push(0);
else {
var distance = response.rows[0].elements[0].distance;
var distance_text = distance.text;
responseCount.push(distance_text);
}
}
});
}
//to overcome asynchrounous execution and gather all API response
var tid = setInterval(ValidateGoogleResponseCount, 200);
function ValidateGoogleResponseCount() {
if (responseCount.length == dataArray.length) {
//console.log("response ready");
abortTimer();
defer.resolve(); // When this fires, the code in a().then(/..../); is executed.
return defer;
}
}
function abortTimer() { // to be called when you want to stop the timer
clearInterval(tid);
}
return defer;
}
var LoadGrid = function () {
var defer = $.Deferred();
var tableInfo = "";
$.each(selectedInfo, function (index, travelInfo) {
tableInfo += '<tr class="tdInfo">' +
'<td>' + travelInfo.StartPoint + '</td>'+
'<td>' + travelInfo.EndPoint + '</td>'
'<td class="text-center ActualDistance">' + responseCount[index] +
'</td>' +
});
defer.resolve();
return defer;
};
var responseCount=[];
var GoogleDistance=函数(){
var defer=$.Deferred();
var distanceService=new google.maps.DistanceMatrixService();
responseCount=[];
//dataArray=>具有网格行详细信息,其中包括gps原点和目的地信息
对于(i=0;i