Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 给每个Google距离矩阵结果一个id_Javascript_Google Maps Api 3 - Fatal编程技术网

Javascript 给每个Google距离矩阵结果一个id

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;

我正在使用谷歌距离矩阵 计算一些送货费。当它在for循环中输出结果时,每次都会将结果放在新行上,因此我最终得到:

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);