메뉴 건너뛰기

프로그램언어

?

단축키

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 [알짜배기 프로그래머]


List of Articles
번호 제목 날짜 조회 수
260 디렉토리 안의 파일의 내용들을 읽는 예 2016.12.23 19012
259 링크를 걸때 http 처리방법 2016.12.23 19019
258 $_SERVER 함수 2016.12.23 23943
257 문자열 추출하기 (substr) 2016.12.23 18867
256 문자열 치환 (str_replace) 2016.12.23 18812
255 로그인페이지에서 온 경우/로그인한 페이지로 이동 2016.12.23 18847
254 깨진 한글 체크 2016.12.23 20223
253 문자열 찾기 (strstr) 2016.12.23 18907
252 문자열에서 태그를 제거 (strip_tags) 2016.12.23 17522
251 preg_match (정규표현식 매치를 수행합니다) 2016.12.23 20843
250 문자열의 태그를 그대로 출력 (htmlspecialchars) 2016.12.23 18067
249 정규표현식 검사 도구 (ereg, eregi) 2016.12.23 18395
248 이스케이프 함수 (htmlentities) 2016.12.23 18375
247 문자열 뒤집기 (strrev) 2016.12.23 18950
246 대소문자 바꾸기 (strtoupper, strtolower) 2016.12.23 19658
245 $_FILES 2016.12.23 23847
244 정규 표현식 검색과 치환 (preg_replace) 2016.12.23 19012
243 정규표현식 매치를 수행 (preg_match) 2016.12.23 20050
242 explode - 문자열 나눔 2016.12.23 19943
241 파일 확장자 비교 2016.12.23 21970
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved