我一直在这里研究,到目前为止还没有找到答案。所以这是我的问题:
我在 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);
}
据我所知,它直接在地图上工作。但我想知道如何从我的 Mysql 数据库中获取更多的 de 200 地址,与一个地址进行比较,并与 3 个最接近的地址进行比较。对不起,我不知道我该怎么做。任何帮助将不胜感激!