给每个谷歌距离矩阵结果一个id
Giving each Google Distance Matrix result an id
我使用的是谷歌距离矩阵https://developers.google.com/maps/documentation/distancematrix/计算一些运费。当它在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>
这应该不太难。输出值的位置,例如
htmlString += '<tr><td>'+stringArray[j]+'</td><td>' + results[j].distance.text +'</td></tr>';
只需在变量中添加一行附加值即可。我倾向于将它们添加到一个数组中,稍后可以循环使用。
arrResults.push(results[j].distance.text);
如果你确信你总是知道每个值是什么,那么你可以简单地引用它们,比如arrResults[0] * arrResults[2]
相关文章:
- 向更新mysql查询传递一个id
- Javascript:表单验证getElementById仅返回第一个id元素
- JS在隐藏未定义的值后仅从数组中返回第一个id的值
- Meteor:访问另一个集合,每个块中有一个id
- js组合对象只返回一个id
- 给每个谷歌距离矩阵结果一个id
- 如何附加一个id's的详细信息只通过php或jquery提供一次
- Ember eror试图注册一个id已在使用的视图
- 如何使用innerHTML更改图像大小来给它一个id Javascript
- 具有一个#id的多选选项可显示n个隐藏表
- 设置一个按钮按下函数来触发一个Id为的Ajax调用
- 如何创建一个每行列数未知的html表,对齐列,并为每个单元格/行指定一个id
- jQuery鼠标滚动到下一个id
- 如何在 JavaScript 中获取另一个 ID 下的 ID
- Javascript 保存相同的 ID,而不会在 LocalStorage 中覆盖另一个 ID
- 如何在 html 中调用另一个 ID 中的特定 ID
- 将事件绑定到类中的所有元素,而不仅仅是一个 id
- 使用 JSP 为
-Elements 提供一个 ID - JS只使用一个id,忽略另一个id
- 找到一个按钮并通过jQuery / JavaScript分配一个ID