Skip to content

Instantly share code, notes, and snippets.

@ebritanica
Last active April 10, 2018 07:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ebritanica/70ffcd401bffb6d209ed5a910e583c1e to your computer and use it in GitHub Desktop.
Save ebritanica/70ffcd401bffb6d209ed5a910e583c1e to your computer and use it in GitHub Desktop.
GOOGLE MAPS API: Distance in km from point to other points
function getDistance (){
var distances = [];
/*Местонахождение точки(клиента)*/
var userplace = "55.667521, 37.505066"; //точка пользователя
/* Точки на МКАД(google карте), откуда считать расстояния*/
var dist = ["55.686954, 37.830700","55.813862, 37.838834","55.882301, 37.725789","55.907776, 37.543516","55.713578, 37.385950"]; //массив со съездами
/* Сздадим обьект service для будущей работы с ним */
var service = new google.maps.DistanceMatrixService();
/* Заполним обьект данными и получим результат вычисления */
service.getDistanceMatrix({
origins: [userplace], //местанахождение точки (клиента)
destinations: dist, //массив точек на карте (МКАД)
travelMode: 'DRIVING' //на машине
}, function callback(response, status) { //Обработаем результат
if (status == "OK"){
var sortable = []; //новый массив для расстояний
var elements = response.rows[0].elements;
//дальше перебор резаультатов маршрута от съездов до точки
for (var i = 0; i < elements.length; i++) {
sortable.push([response.destinationAddresses[i], elements[i].distance.value]);
}
/* Сделаем сортировку массива от меньшего к большему значению */
sortable.sort(function(a, b) {return a[1] - b[1]});
var text = ""; //переменная для текста
/* Получим готовый отсортированный массив*/
for (var y = 0; y < sortable.length; y++){
distances.push((sortable[y][1]/1000).toFixed(1));
}
/* document.getElementById("text").innerHTML = text */; // вывод текста на экран
}
});
/* Вернём готовый массив с результатми */
return places;
}
/*Нулевой элемент массива имеет - это самый короткое расстояние между userplace и dist */
console.log(getDistance());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment