[Typescript] 2개의 좌표(경도, 위도)로 거리 계산
Javascript & JQuery2021. 5. 14. 17:42
경도, 위도 2개의 좌표로 사이의 거리 계산
//------------------------------------------
// 경도, 위도 2개의 좌표로 사이의 거리 계산
//------------------------------------------
getDistince(lng1: number, lat1: number, lng2: number, lat2: number, useKm?: boolean) {
if ((lng1 == lng2) && (lat1 == lat2)) {
return 0;
} else {
const theta = lng1 - lng2;
let dist = Math.sin(this.deg2rad(lat1)) * Math.sin(this.deg2rad(lat2))
+ Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * Math.cos(this.deg2rad(theta));
dist = Math.acos(dist);
dist = this.rad2deg(dist);
dist = dist * 60 * 1.1515;
if (useKm) {
dist = dist * 1.609344;
} else {
dist = dist * 1609.344;
}
return dist;
}
}
deg2rad(deg: number) {
return deg * Math.PI / 180.0;
}
rad2deg(rad: number) {
return rad * 180 / Math.PI;
}
출처
'Javascript & JQuery' 카테고리의 다른 글
| 사용자 웹 브라우저 및 버전 확인 (0) | 2017.03.21 |
|---|---|
| 체크박스 전체 선택 및 해제 (0) | 2016.04.01 |
| 입력 데이터가 제대로 된 날짜인지 검사 (0) | 2016.04.01 |
| 숫자 키입력 검사 (0) | 2016.04.01 |
사용자 웹 브라우저 및 버전 확인
Javascript & JQuery2017. 3. 21. 18:24
사용자 웹 브라우저 및 버전 확인
function getBrowserInfo(opt) {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('android') > -1) return 'Android';
else if (ua.match(/iphone|ipad|ipot/)) return 'iOS';
if (navigator.appName == 'Microsoft Internet Explorer') {
if (opt == 'n') return 'Explorer';
else {
var re = new RegExp('msie ([0-9]{1,}[\\.0-9]{0,})');
if (re.exec(ua) !== null) {
if (opt == 'v')
return parseInt(RegExp.$1);
else
return 'Explorer '+ parseInt(RegExp.$1);
}
}
}
else if (ua.indexOf('trident') != -1 && navigator.product == 'Gecko') { //IE 11 above
if (opt == 'n') return 'Explorer';
else {
var re = new RegExp('trident/.*rv:([0-9]{1,}[\.0-9]{0,})');
if (re.exec(ua) != null) {
if (opt == 'v')
return parseInt(RegExp.$1);
else
return 'Explorer '+ parseInt(RegExp.$1);
}
}
}
else if (/edge/.test(ua)) {
if (opt == 'n') return 'Edge';
else {
if (opt == 'v')
return parseInt(/edge\/([\d\.]+)/.exec(ua)[1]);
else
return 'Edge '+ parseInt(/edge\/([\d\.]+)/.exec(ua)[1]);
}
}
else if (/chrome/.test(ua)) {
if (opt == 'n') return 'Chrome';
else {
if (opt == 'v')
return parseInt(/chrome\/([\d\.]+) safari/.exec(ua)[1]);
else
return 'Chrome '+ parseInt(/chrome\/([\d\.]+) safari/.exec(ua)[1]);
}
}
else if (/firefox/.test(ua)) {
if (opt == 'n') return 'FireFox';
else {
if (opt == 'v')
return parseInt(/firefox\/([\d\.]+)/.exec(ua)[1]);
else
return 'FireFox '+ parseInt(/firefox\/([\d\.]+)/.exec(ua)[1]);
}
}
else if (/safari/.test(ua)) {
if (opt == 'n') return 'Safari';
else {
if (opt == 'v')
return parseInt(/version\/([\d\.]+) safari/.exec(ua)[1]);
else
return 'Safari '+ parseInt(/version\/([\d\.]+) safari/.exec(ua)[1]);
}
}
return 'Other';
}
getBrowserInfo('n'); //웹 브라우저 이름
getBrowserInfo('v'); //웹 브라우저 버전
getBrowserInfo(); //웹 브라우저 이름 + 버전
'Javascript & JQuery' 카테고리의 다른 글
| [Typescript] 2개의 좌표(경도, 위도)로 거리 계산 (0) | 2021.05.14 |
|---|---|
| 체크박스 전체 선택 및 해제 (0) | 2016.04.01 |
| 입력 데이터가 제대로 된 날짜인지 검사 (0) | 2016.04.01 |
| 숫자 키입력 검사 (0) | 2016.04.01 |
체크박스 전체 선택 및 해제
Javascript & JQuery2016. 4. 1. 10:50
테이블 안에 있는 체크박스 모두 선택 및 해제
테이블 ID = 'xxxxx_tblList'
전체 선택 체크박스 ID = 'xxxxx_chkAll' 인 경우 뒷부분 선택자 id$ 로 선택
전체 선택 체크박스 역시 영향받기 때문에 thead, tbody 태그로 구분해서
tbody에 있는 체크박스만 처리
$(document).ready(function () {
$('input[id$="chkAll"]').click(function () {
var tbl = $('table[id$="tblList"]');
var checked = $(this).is(':checked');
$('tbody tr td input:checkbox', tbl).each(function () {
$(this).prop('checked', checked);
})
});
});
'Javascript & JQuery' 카테고리의 다른 글
| [Typescript] 2개의 좌표(경도, 위도)로 거리 계산 (0) | 2021.05.14 |
|---|---|
| 사용자 웹 브라우저 및 버전 확인 (0) | 2017.03.21 |
| 입력 데이터가 제대로 된 날짜인지 검사 (0) | 2016.04.01 |
| 숫자 키입력 검사 (0) | 2016.04.01 |
입력 데이터가 제대로 된 날짜인지 검사
Javascript & JQuery2016. 4. 1. 10:35
//날짜인지 검사
function isDate(d, c) {
var y, m, d;
if (d.length == 8) {
y = parseInt(d.substr(0, 4));
m = parseInt(d.substr(4, 2));
d = parseInt(d.substr(6, 2));
}
else if (d.length == 10) {
if (c == null) c = '-';
var a = d.split(c);
if (a.length != 3) return false;
y = parseInt(a[0]);
m = parseInt(a[1]);
d = parseInt(a[2]);
}
else {
return false;
}
var date = new Date(y, m - 1, d);
return (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d);
}
'Javascript & JQuery' 카테고리의 다른 글
| [Typescript] 2개의 좌표(경도, 위도)로 거리 계산 (0) | 2021.05.14 |
|---|---|
| 사용자 웹 브라우저 및 버전 확인 (0) | 2017.03.21 |
| 체크박스 전체 선택 및 해제 (0) | 2016.04.01 |
| 숫자 키입력 검사 (0) | 2016.04.01 |
숫자 키입력 검사
Javascript & JQuery2016. 4. 1. 10:30
//숫자 키입력 검사
function isNumberKeyDown(e) {
e = e || window.event;
var keyCode = (e.keyCode ? e.keyCode : e.which);
if (keyCode == 8 || keyCode == 9 || keyCode == 27 || keyCode == 46) return true; //BackSpace, Tab, ESC, Delete
if (keyCode == 35 || keyCode == 36 || keyCode == 37 || keyCode == 39) return true; //Home, End, Left, Right Arrow
if (e.ctrlKey || e.shiftKey || keyCode == 13) return false; //Enter
return ((keyCode > 47 && keyCode < 58) || (keyCode > 95 && keyCode < 106));
}
위와 같이 처리해도 한글은 입력되기 때문에 한글 입력을 방지하기 위해 ime-mode 스타일 추가
'Javascript & JQuery' 카테고리의 다른 글
| [Typescript] 2개의 좌표(경도, 위도)로 거리 계산 (0) | 2021.05.14 |
|---|---|
| 사용자 웹 브라우저 및 버전 확인 (0) | 2017.03.21 |
| 체크박스 전체 선택 및 해제 (0) | 2016.04.01 |
| 입력 데이터가 제대로 된 날짜인지 검사 (0) | 2016.04.01 |
