메뉴 건너뛰기

프로그램언어

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 

 

 

- 두 좌표의 중심점을 구하는 함수

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function makeLengthInfo(data){
    var iwContent = '';
    var distanceArray = [];
    data.reduce(function(a,b){
        var d = [];
        var position1 = new daum.maps.LatLng(Number(a.split('/')[0]),Number(a.split('/')[1]));
        var position2 = new daum.maps.LatLng(Number(b.split('/')[0]),Number(b.split('/')[1]));
        d.push(position1, position2);
        var x = (Number(a.split('/')[0])+Number(b.split('/')[0]))/2;
        var y = (Number(a.split('/')[1])+Number(b.split('/')[1]))/2;
        var positions = new daum.maps.LatLng(x,y);
        var infoWinArray = new daum.maps.InfoWindow({
            position: positions,
            zIndex:1,
             content:(getDistanceFromLatLonInKm(d)/1000)+"Km"
        }).setMap(map);
        return b;
    });
}
cs

 

여기서 data의 포멧은 x+"/"+y 데이터가 있는 배열입니다.

두 좌표 사이의 중심 값은 (x1+x2)/2, (y1+y2)/2 로 구하는 것을 보실 수 있습니다.

사용된 reduce 함수에 대해서는 아래의 Link를 참고하세요.

 

Link : javascript reduce 함수에 대해 알아보자 자바스크립트 reduce 함수, reduceRight 함수

 

 

 

 

 

- 두 좌표 사이의 거리를 구하는 함수

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getDistanceFromLatLonInKm(array) {
    var lat1 = array[0].getLat();
    var lng1 = array[0].getLng();
    var lat2 = array[1].getLat();
    var lng2 = array[1].getLng();
    
    function deg2rad(deg) {
        return deg * (Math.PI/180)
    }
    var r = 6371//지구의 반지름(km)
    var dLat = deg2rad(lat2-lat1);
    var dLon = deg2rad(lng2-lng1);
    var a = Math.sin(dLat/2* Math.sin(dLat/2+ Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon/2* Math.sin(dLon/2);
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    var d = r * c; // Distance in km
    return Math.round(d*1000);
}
cs

 

여기서 매개변수로 받는 배열은 makeLengthInfo 함수를 보시면,

 

1
2
var position1 = new daum.maps.LatLng(Number(a.split('/')[0]),Number(a.split('/')[1]));
var position2 = new daum.maps.LatLng(Number(b.split('/')[0]),Number(b.split('/')[1]));
cs

 

다음지도의 포지션 값인 것을 확인하실 수 있습니다.



출처: https://aljjabaegi.tistory.com/431 [알짜배기 프로그래머]


  1. 13자리 timestamp 생성하기

  2. No Image 28Sep
    by
    2020/09/28 Views 1253 

    cUrl를 이용한 json 데이타 주고 받기

  3. 23Sep
    by 조쉬
    2020/09/23 Views 535 

    Javascript 두 좌표 사이의 거리 구하기, 두 좌표의 중앙 좌표 구하기

  4. No Image 22Sep
    by
    2020/09/22 Views 490 

    네이버 지도 API를 이용한 주소를 좌표로 변환하기 (PHP)

  5. No Image 24Aug
    by
    2020/08/24 Views 470 

    사업자등록번호 유효성 체크

  6. No Image 19Jun
    by
    2020/06/19 Views 437 

    멀티 파일다운로드 꽁수로 구현하기

  7. No Image 19Jun
    by
    2020/06/19 Views 618 

    파일 다운로드 함수(멀티 이어받기/속도제한)

  8. No Image 19Jun
    by
    2020/06/19 Views 616 

    다중 파일을 zip으로 묶어받기

  9. No Image 25May
    by
    2020/05/25 Views 767 

    사진이 회전되서 올라갈 경우

  10. No Image 31Dec
    by
    2019/12/31 Views 644 

    PHP 버전이 낮아 imagerotate() 함수가 없을때 대신 사용하는 함수

  11. No Image 24Jun
    by
    2019/06/24 Views 1942 

    PHP 외부 XML 파싱 하기

  12. 주간단위 시작일에서 종료일을 셀렉트박스로 만들기.

  13. No Image 29Apr
    by
    2019/04/29 Views 1356 

    utf-8 문자열을 주어진 바이트로 자르기

  14. No Image 25Feb
    by
    2019/02/25 Views 1558 

    PHP $_SERVER 함수

  15. No Image 19Feb
    by
    2019/02/19 Views 1553 

    PHP에서 UTF와 EUC-KR 변환

  16. PHP 가변변수 $$

  17. No Image 19Feb
    by
    2019/02/19 Views 2182 

    PHP http 를 https 로 전환(redirect), http->https

  18. No Image 19Feb
    by
    2019/02/19 Views 1217 

    input 자동완성기능 끄기

  19. No Image 16Jan
    by
    2019/01/16 Views 1850 

    dddotag - 허용하지 않는 태그 걸러내기

  20. No Image 16Jan
    by
    2019/01/16 Views 1313 

    애니메이션 gif 와 일반 gif 구분 하기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved