Я разрабатываю карту, которая использует расстояние между точками на Google Maps.
Теперь я столкнулся с проблемой, так как я новичок в javascript. Я не могу рассчитать все расстояния и сохранить их в виде массива. (необходимо проверить все расстояния и выбрать самое близкое.)
Вот мой код на данный момент: (первые lat1, lng1 - мои геолокации) (live: http://www.cosound.nl/index-v01.html)
var locations = [
['ArtEZ Institute of the Arts', 51.983776, 5.893732, 5],
['Renssenstraat 9-12', 51.984874, 5.897199, 4],
['Utrechtsestraat 53', 51.983703, 5.897809, 3],
['Oude Kraan', 51.982593, 5.898420, 2],
['Montevia Studenthousing', 51.981833, 5.901081, 1 ]
];
// The above ones is my array of locations
var currentDist;
// This is the code I'm using to try and get back the distances.
// Assuming that I need to put some counter in the function....
function distance(lat1,lng1,lat2,lng2) {
var R = 6371; // km (change this constant to get miles)
var dLat = (lat2-lat1) * Math.PI / 180;
var dLon = (lng2-lng1) * Math.PI / 180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
if (d>1) return d;
else if (d<=1) return Math.round(d*1000);
return d;
}
Может быть, я могу использовать цикл for?
for (count = 0; count < locations.length; count++) {
}
Пробовал сам:
for (count = 0; count < locations.length; count++) {
currentDist = distance(lat1,lng1,locations[count][1],locations[count][2]);
}
Хотел бы сохранить их в массиве или, по крайней мере, иметь возможность использовать их где-нибудь еще.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать цикл for и увеличить расстояние в своем массиве:
for (var i = 0; i < locations.length; i++) {
locations[i].push(distance(lat1, lng1, locations[i][1], locations[i][2]));
}
возможный дубликат Google Maps API - изменение функции ближайшего маркера к ближайшим n маркерам