2026, 새로운 도약을 시작합니다.

스크립트 거리계산 반복출력이 안됩니다..ㅠㅠ 채택완료

4년 전 조회 2,096

안녕하세요 선생님들

도움을 받고자 이렇게 질문을 남깁니다 ㅠㅠ

스크립트로 거리계산을 하는데 단일로는 출력을 잘하는데 for문안에서 반복출력이 안됩니다..

여분필드 wr_1에 위도 wr_2에 경도 를 저장했습니다

리스트에 출력하니깐 게시물마다 나오는게 아니고 마지막 1개값만 출력이 됩니다 ㅠㅠ

list.skin.php


<script>

var ourCoords = {
    latitude : <?php echo $list[$i]['wr_1']; ?>,  //위도
    longitude : <?php echo $list[$i]['wr_2']; ?>,  //위도
};

</script> 

<script type="text/javascript" src="myLoc.js"></script>


<div id="location">내위치</div>
<div id="distance">게시물위치와거리</div>

myloc.js 

window.onload = getMyLocation;

function getMyLocation() {

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
            displayLocation, 
            displayError); 
    } else {
        alert("내 위치 정보제공 설정이 꺼져있거나, 지원하지 않는 브라우져 입니다." );
    }
}

function displayLocation(position) {

    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    
    $("#location").html("내위치 위도: " + latitude +", 경도: " + longitude);
    
    var distance = computeDistance(position.coords, ourCoords);
    $("#distance").html("게시물과 "+distance+"km 떨어져 있습니다.");
                        
}

function computeDistance(startCoords, destCoords) {
    var startLatRads = degreesToRadians(startCoords.latitude);
    var startLongRads = degreesToRadians(startCoords.longitude);
    var destLatRads = degreesToRadians(destCoords.latitude);
    var destLongRads = degreesToRadians(destCoords.longitude);

    var Radius = 6371;
    var distance = Math.acos(Math.sin(startLatRads) * Math.sin(destLatRads) + 
                    Math.cos(startLatRads) * Math.cos(destLatRads) *
                    Math.cos(startLongRads - destLongRads)) * Radius;

    return distance;
}

function degreesToRadians(degrees) {
    radians = (degrees * Math.PI)/180;
    return radians;
}

답변 2개

채택된 답변
+20 포인트

일단 소스 자체가 반복문으로 적합하건 같지는 않네요 같은 스크립트가 반복묵으로 하신다면 반복되서 나오시는거고 값을 넣는것도 아이디로 해서 중복이신거 같네요.

수정을 하셔야 할거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

역시나 스크립트부분을 새로 짜야하는군요..ㅠㅠ

좀더 검색해서 수정을 해봐야겠습니다

감사합니다

댓글을 작성하려면 로그인이 필요합니다.

해당소스에 반복문이 없는데요..?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

스크립트에 반복문으로 해봤는데 안되서 다시 해봐야겠네요 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고