Карты Google - Расстояние между 2 маркерами (маркеры в массиве)

Я разрабатываю карту, которая использует расстояние между точками на 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]);
        }

Хотел бы сохранить их в массиве или, по крайней мере, иметь возможность использовать их где-нибудь еще.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
48
1

Ответы 1

Вы можете использовать цикл for и увеличить расстояние в своем массиве:

for (var i = 0; i < locations.length; i++) {

  locations[i].push(distance(lat1, lng1, locations[i][1], locations[i][2]));
}

Другие вопросы по теме