Javascript 给每个Google距离矩阵结果一个id
我正在使用谷歌距离矩阵 计算一些送货费。当它在for循环中输出结果时,每次都会将结果放在新行上,因此我最终得到:Javascript 给每个Google距离矩阵结果一个id,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在使用谷歌距离矩阵 计算一些送货费。当它在for循环中输出结果时,每次都会将结果放在新行上,因此我最终得到: 1 25 26 1 是否可以将每个结果存储在一个变量中,这样我就可以在代码的其他地方调用每个单独的结果,进行一些数学计算,以计算成本等,所以 $result1 $result2 $result3 $result4 稍后我会做一些事情,比如result1*result3=等等 <script> var map;
1
25
26
1
是否可以将每个结果存储在一个变量中,这样我就可以在代码的其他地方调用每个单独的结果,进行一些数学计算,以计算成本等,所以
$result1
$result2
$result3
$result4
稍后我会做一些事情,比如result1*result3=等等
<script>
var map;
var geocoder;
var bounds = new google.maps.LatLngBounds();
var markersArray = [];
var base = new google.maps.LatLng(55.930385, -3.118425);
var start = 'Greenwich, England';
var destinationA = 'Stockholm, Sweden';
var end = new google.maps.LatLng(55.930385, -3.118425);
var destinationIcon = 'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=D|FF0000|000000';
var originIcon = 'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=O|FFFF00|000000';
function initialize() {
var opts = {
center: new google.maps.LatLng(55.53, 9.4),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'), opts);
geocoder = new google.maps.Geocoder();
calculateDistances();
}
function calculateDistances() {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [base],
destinations: [start, end],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
var outputDiv = document.getElementById('outputDiv');
outputDiv.innerHTML = '<table border="1">';
deleteOverlays();
var stringArray = ['$runinPickup','$runinDestination'];
var htmlString = '<table border="1">';
for (var i = 0; i < origins.length; i++) {
var results = response.rows[i].elements;
addMarker(origins[i], false);
for (var j = 0; j < results.length; j++) {
addMarker(destinations[j], true);
htmlString += '<tr><td>'+stringArray[j]+'</td><td>' + results[j].distance.text +'</td></tr>';
outputDiv.innerHTML += '<tr><td>'+stringArray[j]+'</td><td>' + results[j].distance.text +'</td></tr>';
}
}
htmlString += '</table>';
// outputDiv.innerHTML += '</table>';
outputDiv.innerHTML = htmlString;
// alert(htmlString);
}
}
function addMarker(location, isDestination) {
var icon;
if (isDestination) {
icon = destinationIcon;
} else {
icon = originIcon;
}
geocoder.geocode({'address': location}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
bounds.extend(results[0].geometry.location);
map.fitBounds(bounds);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: icon
});
markersArray.push(marker);
} else {
alert('Geocode was not successful for the following reason: '
+ status);
}
});
}
function deleteOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
</script>
var映射;
var地理编码器;
var bounds=new google.maps.LatLngBounds();
var-markersArray=[];
var base=new google.maps.LatLng(55.930385,-3.118425);
var start=‘英格兰格林威治’;
var destinationA=‘瑞典斯德哥尔摩’;
var end=new google.maps.LatLng(55.930385,-3.118425);
目的地变量https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=D|FF0000 | 000000';
原始变量https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=O|FFFF00 | 000000';
函数初始化(){
变量选项={
中心:新google.maps.LatLng(55.53,9.4),
缩放:10,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map'),opts);
geocoder=新的google.maps.geocoder();
计算状态();
}
函数CalculateInstances(){
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
来源:[基],
目的地:[开始,结束],
travelMode:google.maps.travelMode.DRIVING,
unitSystem:google.maps.unitSystem.IMPERIAL,
避免:错误,
避免收费:错误
},回调);
}
函数回调(响应、状态){
if(status!=google.maps.DistanceMatrixStatus.OK){
警报(“错误为:”+状态);
}否则{
var origins=response.originAddresses;
var destinations=response.destinationaddress;
var outputDiv=document.getElementById('outputDiv');
outputDiv.innerHTML='';
deleteOverlays();
var stringArray=['$runinPickup','$runinDestination'];
var htmlString='';
对于(变量i=0;i
这应该不会太难。输出值的位置,例如
htmlString += '<tr><td>'+stringArray[j]+'</td><td>' + results[j].distance.text +'</td></tr>';
如果您确信始终知道每个值是什么,那么您可以简单地引用它们,如
arrResults[0]*arrResults[2]
很抱歉,我为该行添加了错误的行,它应该是html+=parseInt(elements[j].distance.text)+“”;如何将其添加到数组中?
array.push(parseInt(elements[j].distance.text))代码>
arrResults.push(results[j].distance.text);