Как я могу вернуть (n) ближайшие адреса из определенной точки, используя Google Distance Matrix?

Я исследовал здесь и не нашел ответа до сих пор. Итак, вот мой вопрос:

У меня есть несколько адресов в базе данных MySQL, и мне нужно вернуть 10 ближайших адресов только с одного конкретного адреса. Как мне это сделать?

Не очень понятно, как я могу измерить эти расстояния и выбрать 10 ближайших.

Пожалуйста, помогите мне.

Обновление этого поста!

Я нашел этот код:

function codeAddress() {
    var address = document.getElementById('address').value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
    if (customerMarker) customerMarker.setMap(null);
        customerMarker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    closest = findClosestN(results[0].geometry.location,10);
        // get driving distance
        closest = closest.splice(0,3);
        calculateDistances(results[0].geometry.location, closest,3);
       } else {
         alert('Geocode was not successful for the following reason: ' + status);
      }
    });
  }

function findClosestN(pt,numberOfResults) {
   var closest = [];
   document.getElementById('info').innerHTML += "processing "+gmarkers.length+"br>";
   for (var i=0; i<gmarkers.length;i++) {
     gmarkers[i].distance = google.maps.geometry.spherical.computeDistanceBetween(pt,gmarkers[i].getPosition());
      document.getElementById('info').innerHTML += "process "+i+":"+gmarkers[i].getPosition().toUrlValue(6)+":"+gmarkers[i].distance.toFixed(2)+"<br>";
     gmarkers[i].setMap(null);
     closest.push(gmarkers[i]);
   }
   closest.sort(sortByDist);
   return closest; 
}

function sortByDist(a,b) {
   return (a.distance- b.distance); 
}

Насколько я мог видеть, он работает прямо на карте. Но я хотел бы узнать, как я могу взять больше 200 адресов из моей базы данных Mysql, сравнить их с одним адресом и дать предупреждение с 3 ближайшими. Извините, я понятия не имею, как я могу это сделать. Любая помощь будет оценена!

0 ответов

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