수고 많으십니다.
-
현재상황 : 산업단지 신규조성으로 좌 우측에 마을을 단지가 구성된 곳으로 단지내 통신사 기지국이 없음
-
증상 : gps를 잡으면 좌측마을, 우측마을의 좌표로 잡혀 주소지가 현위치와 다르게 나올때가 빈번합니다. 안드로이드 아이폰 마찬가지 입니다
-
소스코드
<script type="text/javascript" src="/M/LIB/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="/M/LIB/jquery-cookie.js"></script>
<script type="text/javascript" src="/M/LIB/Site_Base.js"></script>
<script type="text/javascript" src="/M/LIB/Site_Project.js"></script> <!-- 오른쪽 하단 위쪽 화살표 아이콘 제거시 (btnTop검색) 19-28Line -->
<link rel="stylesheet" href="/M/LIB/themes/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="/M/LIB/jquery.mobile.structure-1.4.4.min.css" />
<script type="text/javascript" src="/M/LIB/jquery.mobile-1.4.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var nSearch = $(location).attr('search');
var nSp = nSearch.replace('?', '').split("/");
var nDate = nSp[0]; $("#STR_USER_ID").val($.cookie('ckIdUser')); // ckIdUser -- ID값
var nDate = nSp[1]; $("#STR_USER_CD").val($.cookie('ckCdUser')); // ckCdUser -- USER값
var nDate = nSp[2]; $("#STR_USER_MEID").val($.cookie('ckMEID')); // ckMEID ---- DB에 저장된 기기값
var nDate = nSp[3]; $("#s_MEID").val($.cookie('s_MEID')); // s_MEID ---- 사용자의 현재 기기값
$("#STR_USER_ID2").val($.cookie('ckIdUser')); // ckIdUser -- ID값 나의근태 검색용
let today = new Date();
let hours = today.getHours(); // 시
let minutes = today.getMinutes(); // 분
// 초기 HTML에 설정된 상태를 확인한다.
$('#ChangeStat').trigger('change'); // change event를 발생시킨다.
function En0001() {$('#ChangeStat option[value="1"]').prop('disabled', false);}
function En0000() {$('#ChangeStat option[value="99"]').prop('disabled', false);}
function En0002() {$('#ChangeStat option[value="2"]').prop('disabled', false);}
function En0003() {$('#ChangeStat option[value="3"]').prop('disabled', false);}
function En0004() {$('#ChangeStat option[value="4"]').prop('disabled', false);}
function En0005() {$('#ChangeStat option[value="5"]').prop('disabled', false);}
function En0006() {$('#ChangeStat option[value="6"]').prop('disabled', false);}
function En0007() {$('#ChangeStat option[value="7"]').prop('disabled', false);}
function En0008() {$('#ChangeStat option[value="8"]').prop('disabled', false);}
function En0009() {$('#ChangeStat option[value="9"]').prop('disabled', false);}
//새벽3시부터 14시 사이에만 식사신청을 할 수 있음
if(hours >= 03 && hours <=14){
En0000();
En0001();
En0002();
En0003();
En0004();
En0005();
En0006();
En0007();
En0008();
En0009();
}else{
En0001();
}
<!-- En0006(); -->
<!-- En0007(); -->
<!-- En0008(); -->
<!-- En0009(); -->
});
</script>
근태체크
Org <div role="main" class="ui-content" id="_Contents" style="padding:5px; margin-bottom:100px; align="center">
<!--<div id="map" style="width:100%;height:120px;margin-top:10px;center "></div> 지도 생성 및 사이즈 변경 -->
<div id="map" style="display:none"></div> <!-- 지도 숨김 -->
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=9c643a91d6649fb65877eb8897c23291&libraries=services"></script> <!-- 카카오 지도 API key값 -->
<script>
var span;
window.onload = function () {
span = document.getElementById("display");
if (navigator.geolocation) // 브라우저에서 웹 지오로케이션 지원여부 판단
{
// span.innerHTML = “GeoLocation API 를 지원하는 브라우저”;
var options = { timeout: 3000, maximumAge: 4000 }; // PositionOptions 객체 설정용
options.enableHighAccuracy = true;
navigator.geolocation.getCurrentPosition(sucCall, errCall, options); // 현재 위치정보 딱 한번 얻기
}
else {
span.innerHTML = “GeoLocation API 를 지원하지 않는 브라우저 입니다.”;
}
};
var sucCall = function (position) { // 위치정보 얻기 성공시 자동으로 호출되는 콜백함수. 인자는 Position 객체
var lat = position.coords.latitude; // 위도, 경도 얻기
var lng = position.coords.longitude;
// alert(“모바일 근태는 위치정보 허용이 필요하며,\n기록되지않습니다”);
displayMap(lat, lng);
markerMap(lat, lng);
positionName();
span.innerHTML = “위치 확인 성공”;
};
function errCall(error) { // 위치정보 얻기 실패시 자동으로 호출되는 콜백함수. 인자는 PositionError 객체
switch (error.code) {
case 1:
span.innerHTML = "허용거부됨";
break;
case 2:
span.innerHTML = "위치 확인 불가";
break;
case 3:
span.innerHTML = "시간초과";
break;
case 0:
span.innerHTML = "알 수 없는 오류";
break;
default:
span.innerHTML = error.message;
}
alert("위치 허용 확인 후 다시 시도하시기 바랍니다");
history.go(-1); // 에러 발생시 이전 화면으로 이동
};
function displayMap(lat, lng) {
var container = document.getElementById('map');
var options = {
center: new kakao.maps.LatLng(lat, lng), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
};
map = new kakao.maps.Map(container, options); // 지도를 생성합니다
}
function markerMap(lat, lng) { // 마커 생성
markerPosition = new kakao.maps.LatLng(lat, lng);
marker = new kakao.maps.Marker({ position: markerPosition }), infowindow = new kakao.maps.InfoWindow({ zindex: 1 }); // 주소에 마커를 표시할 인포윈도우입니다
marker.setMap(map);
document.getElementsByName('R_LATITUDE')[0].value = lat; // 좌표값을 form name값에 전달한다
document.getElementsByName('R_LONGITUDE')[0].value = lng;
}
function positionName() { // 지도에서 주소 표시
var geocoder = new kakao.maps.services.Geocoder(); // 주소-좌표 변환 객체를 생성합니다
var callback = function (result, status) {
if (status == kakao.maps.services.Status.OK) {
content = '주소 : ' + result[0].address.address_name;
infowindow.setContent(content);
infowindow.open(map, marker);
var add = result[0].address.address_name;
document.getElementsByName('R_ADDR')[0].value = add;
}
};
geocoder.coord2Address(markerPosition.getLng(), markerPosition.getLat(), callback); // 좌표로 상세 주소 정보를 요청합니다
}
</script>
<form method="POST" action="/M/VB/mWorkGpsInf.asp" name="post_ok">
<br>
<b>근무장소</b><input type="text" id="R_COMMENT" name="R_COMMENT" placeholder="근무장소를 입력하세요" required><br><br>
<b>체온측정</b>
<select id="ChangeStat" name="R_TEMPCHK">
<option value="1" disabled selected>정상체온(35~6℃)</option>
<option value="2" disabled>비정상(37.3~℃) 지원팀 문의필요</option>
</select><br><br>
<b>식사선택</b>
<select id="ChangeStat" name="R_EVENT" required>
<option value="" disabled selected hidden>Select</option>
<option value="1" disabled>신청안함</option>
<option value="2" disabled>점심</option>
<option value="3" disabled>점심+내일저녁</option>
<option value="4" disabled>내일저녁</option>
<option value="5" disabled>점심+휴일점심</option>
</select>
<input type="hidden" id="R_ADDR" name="R_ADDR" style="display:none;"/> <!-- 위치정보 -->
<input type="hidden" id="R_LATITUDE" name="R_LATITUDE" style="display:none;"/> <!-- X좌표값 -->
<input type="hidden" id="R_LONGITUDE" name="R_LONGITUDE" style="display:none;"/> <!-- Y좌표값 -->
<input type="hidden" id="STR_USER_ID" name="STR_USER_ID" style="display:none;"/> <!-- ckIdUser -->
<input type="hidden" id="STR_USER_CD" name="STR_USER_CD" style="display:none;"/> <!-- ckCdUser -->
<input type="hidden" id="STR_USER_MEID" name="STR_USER_MEID" style="display:none;"/> <!-- ckMEID -->
<input type="hidden" id="s_MEID" name="s_MEID" style="display:none;"/> <!-- s_MEID -->
<table align="center" width=80%> <!-- 버튼 폭 조절 -->
<colgroup align="center">
<col width="30%"><col width="5%">
<col width="30%">
</colgroup>
<tr>
<!-- <input type="hidden" name="R_FLAG" value="출근"> -->
<td scope="col"><input type="submit" id="R_FLAG" name="R_FLAG" value="출근" style="background-Color:#ff0000;"><center>Work Start</td><td scope="col"></td>
<td scope="col"><input type="submit" id="R_FLAG" name="R_FLAG" value="퇴근" style="background-Color:#00ff00;"><center>Work End</td>
</tr>
</table>
</form>
<br><hr><br>
<form method="POST" action='/M/VB/mWorkTime_End.asp'>
<table align="center" width=80%>
<colgroup align="center">
<col width="45%"><col width="10%">
<col width="45%">
</colgroup>
</table>
</form>
<form method="POST" action='/M/VB/mWorkGpsView.asp'>
<div data-role="controlgroup" data-type="horizontal" align="center">
<input type="submit" value="나의근태" />
<input type="button" value="휴가계상신" onclick="location = '/M/HTML/mWorkVacation.html'" />
<input type="button" value="개인정보처리방침" onclick="location = '/M/HTML/mPrivercy.html'" />
</div>
<input type="hidden" id="STR_USER_ID2" name="STR_USER_ID2" style="display:none;"//>
<p>
<center>
<br><span id="display" style="color:red;font-size:1.5em;font-weight:bold"></span><br><br>
<font style="font-size:0.9em;font-weight:bold">모바일 근태는 위치정보 허용이 필요하며, 기록되지 않습니다</font>
</center> <!-- 안내 메시지 font 속성변경 -->
</form>
</div>
<div id="_Footer" style="width:100%; position:fixed; bottom:0px; z-index:990; white-space: normal; background:#0F2439;">
<div class="ui-block-a" style="text-align:left; width:20%;"><a href="/M/HTML/mMain.html" rel="external" class="ui-shadow ui-btn ui-btn-c ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline">Home</a></div>
<div class="ui-block-b" style="text-align:center; width:60%;"><div id="" style="padding:13px 0 0 10px; color:#66ff00; font-weight:bold;">(주) YHT</div></div>
<div class="ui-block-c" style="text-align:right; width:20%;"><a href="#" rel="external" onclick="BaseLogOut();" class="ui-shadow ui-btn ui-btn-c ui-corner-all ui-icon-power ui-btn-icon-notext ui-btn-inline">Logout</a></div>
</div>
<div data-role="panel" id="panel_LNB" data-position="left" data-display="overlay" data-theme="b"></div> <!-- Left_Pannel Menu -->