2017-11-23 12 views
0

여기 내 첫 번째 질문이며 영어는 제 주요 언어가 아니므로 ... 미안하지만 문법 실수를하면!google api 계산 거리를 기반으로 php/mysql 결과를 주문하십시오.

나는 mysql 데이터베이스에서 주소 <ul>의 에코를하는 매우 간단한 PHP 스크립트를 가지고 있습니다.

다른 소프트웨어의 데이터로 만들어진 데이터베이스이므로 위도/경도가 저장되어 있지 않습니다.

Google API를 클릭하여 현재 위치를 얻은 후 google.maps.Geocode을 사용하여 주소를 좌표로 변환 한 다음 google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(lat,lon), new google.maps.LatLng(lat2,lon2)을 사용하여 거리를 계산하고 결과를 미터로 수신 할 수 있습니다.

하지만 거리에 따라 <ul>을 어떻게 정렬 할 수 있습니까? PHP + js로 가능합니까?

나는이 일을하기가 쉽다는 것을 알고있다. 그러나 나는 웹 개발을하는 초보자 일 뿐이며, 나는 이것을 아직 이해할 수 없었다. =/

+0

당신이 데이터베이스에 추가하고 (https://www.scribd.com/presentation/2569355/Geo-Distance-Search-with를 [지오 거리 검색]처럼 당신의 위치를 ​​지오 코딩 -MySQL) – charlietfl

+0

여기서 정렬 하시겠습니까? UL 오름차순으로 정렬하고 거리로 내림차순으로 정렬 하시겠습니까? – SamaBalaYam

+0

@AbidNawaz 정확히 –

답변

0

이렇게하면 거리 목록의 UL 목록을 정렬 할 수 있습니다.

function sortUnorderedList(ul, sortDescending) { 
 
    if (typeof ul == "string") 
 
    ul = document.getElementById(ul); 
 

 
    var lis = ul.getElementsByTagName("LI"); 
 
    var vals = []; 
 

 
    for (var i = 0, l = lis.length; i < l; i++) 
 
    vals.push(lis[i].innerHTML); 
 

 
    vals.sort(); 
 

 
    if (sortDescending) 
 
    vals.reverse(); 
 

 
    for (var i = 0, l = lis.length; i < l; i++) 
 
    lis[i].innerHTML = vals[i]; 
 
} 
 

 
var desc = false; 
 
document.getElementById("test").onclick = function() { 
 
    sortUnorderedList("list", desc); 
 
    desc = !desc; 
 
    return false; 
 
}
<input type="button" id="test" value="Sort List (click again to reverse)" /> 
 
<ul id="list"> 
 

 
    <li>658.7599605058606</li> 
 
    <li>658.7599605058602</li> 
 
    <li>658.7599605058607</li> 
 
    <li>657.7599605058606</li> 
 
    <li>659</li> 
 
</ul>

+0

너무 간단하고 내 자신이 이것을 이해할 수 없었다 ... 나는이 일을하기에는 너무 오래되었다는 생각이 듭니다.// 고마워요! 완벽하게 작동했습니다! –