초보 게시판리스트 거리순 정렬 질문 좀 드립니다.
본문
나름 자료를 찾아서 게시판리스트를 거리순으로 정렬하려고 하는데요
아래 소스에서 주소를 위도경도로 변환해주는 소스가 빠진거 같아요
고수님들 조언좀 부탁합니다."꾸벅"
<script>
//게시판리스트를 불러와 배열에 담음
var tourlist = [
<?
$sql = "select * from g5_write_atable1 order by wr_num";
$result = sql_query($sql);
while($row = sql_fetch_array($result)) {
$address = $row['wr_1'];
$url = "https://dapi.kakao.com/v2/local/search/address.json?query=".urlencode($address);
echo'"',$url,'",';
}
?>
]
//거리순으로 계산해주는 함수
function getDistance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2)
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit == "k") { dist = dist * 1.609344 }
if (unit == "N") { dist = dist * 0.8684 }
return dist
}
//지오로케이션 현재위치를 알려줌
navigator.geolocation.getCurrentPosition((position) => {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude, // 위도
var longitude = position.coords.longitude; // 경도
//게시판리스트 반복문
for (var i=0; i<tourlist.length; i++) {
var distance = getDistance(latitube, longitube, tourlist[i].latitube, tourlist[i].longitube, "k");
tourlist[i].distance = distance;
}
//디스턴스 순으로 정렬
var newTourList = tourlist.sort(function (a, b) {
if (a.distance > b.distance) {
renturn 1;
}
if (a.distance < b.distance) {
return -1;
}
// a must be equal to b
return 0;
});
} (err) => {
});
</script>