Help
RSS
API
Feed
Maltego
Contact
Domain > sporting.place
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-08-18
3.39.128.55
(
ClassC
)
2025-12-11
43.202.208.6
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: awselb/2.0Date: Thu, 11 Dec 2025 05:40:33 GMTContent-Type: text/htmlContent-Length: 134Connection: keep-aliveLocation: https://sporting.place:443/ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Thu, 11 Dec 2025 05:40:33 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveServer: Apache/2.4.41 (Ubuntu)Set-Cookie: Sportingfosa2n1gabl17counifo80lqim; path/; domainsporting.placeSet-Cookie: iUserFirstAccess1; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: jBoardBan%5B%5D; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: jBoardView%5B%5D; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: jBoardReplyBan%5B%5D; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: jUserSportsOrder%5B%5D; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: iMetaSports1; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: iMetaSports1; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: jgclqo%7B%22igclqokr%22%3A10%2C%22igclqodr%22%3A0%7D; expiresSat, 10-Jan-2026 05:40:33 GMT; Max-Age2592000; path/; domainsporting.placeSet-Cookie: sp_visit_code8ead2205fcb659c28602f0e6115affb4; expiresFri, 11-Dec-2026 05:40:33 GMT; Max-Age31536000; path/Vary: Accept-Encoding !DOCTYPE html>html langko>head> meta charsetUTF-8> meta http-equivX-UA-Compatible contentIEedge> meta nameviewport contentwidthdevice-width, initial-scale1.0> !-- SNS 공유 meta --> meta propertyog:title content스포팅 | 모든 스포츠인의 필수 앱 /> !-- meta propertyog:description content주변경기/경기장 찾기,커뮤니티 활동 등 스포팅에서! /> --> meta propertyog:image content/source/sp/sporting_hp/img/sns썸네일.png /> title>스포팅/title> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css referrerpolicyno-referrer /> link href/source/sp/sporting_hp/lib/slick/slick.css relstylesheet /> link href/source/sp/sporting_hp/lib/slick/slick-theme.css relstylesheet /> !-- 슬릭 슬라이더 --> link hrefhttps://unpkg.com/aos@2.3.1/dist/aos.css relstylesheet> script srchttps://unpkg.com/aos@2.3.1/dist/aos.js>/script> !-- AOS 스크립트 --> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css referrerpolicyno-referrer /> !-- 폰트어썸 아이콘--> link href/source/sp/sporting_hp/css/font.css relstylesheet /> link href/source/sp/sporting_hp/css/common.css?ver1765431633> relstylesheet /> link href/source/sp/sporting_hp/css/index.css?ver1765431633> relstylesheet /> link href/source/sp/sporting_hp/css/reset.css?ver1765431633> relstylesheet /> !-- Google tag (gtag.js) --> script async srchttps://www.googletagmanager.com/gtag/js?idAW-11467416766> /script> script> window.dataLayer window.dataLayer || ; function gtag() { dataLayer.push(arguments); } gtag(js, new Date()); gtag(config, AW-11467416766); /script>/head>body> header> div classheader_in> div classlogo> a href/source/sp/sporting_hp/Sporting_HP.html>img src/source/sp/sporting_hp/img/header-logo.png altlogo>/a> /div> !-- div classpc_none> div classpc> ul> li classinfo_menu> a href#>메인/a> /li> li classmanner_menu> a hrefsub/business_menu.html>사업자메뉴/a> /li> /ul> /div> /div> --> div classflex pc_wrap pc_none> div classicon> a href#>img src/source/sp/sporting_hp/img/icon_face.png>/a> a href#>img src/source/sp/sporting_hp/img/icon_twi.png>/a> a href#>img src/source/sp/sporting_hp/img/icon_band.png>/a> /div> div classdl> a href/source/sp/sporting_hp/sub/business_menu.html>비즈니스 메뉴/a> /div> /div> !-- pc ver nav end --> i classfas fa-bars>/i> i classfas fa-times>/i> nav classmobile> div classmo_wrap> div classmo_inner> img src/source/sp/sporting_hp/img/header-logo.png altlogo> div classham_text> p> 함께br>span>챔피언/span>이 되어보세요/p> /div> ul> li classmo_info_menu> a hrefSporting_HP.html>노리버스 소개/a> /li> li classmo_manner_menu> a href./sub/game_manner.html>경기매너/a> /li> /ul> div classicon> a href#>img src/source/sp/sporting_hp/img/icon_face.png>/a> a href#>img src/source/sp/sporting_hp/img/icon_twi.png>/a> a href#>img src/source/sp/sporting_hp/img/icon_band.png>/a> /div> /div> /div> /nav>!-- mobile end --> /div>!-- .header_in end --> /header> !-- header end --> !-- main> div classmain_visual> div classtitle> div classsubt> p>b>스포츠/b>와 span>/span>b> 나/b>br>b>나/b>와 b>모두/b>를 b>연결/b>하는/p> /div> div classmaint> b>NORIVERSE/b> /div> div classyndl_btn momain_dl div idmo_block> a classps hrefhttps://play.google.com/store/apps/details?idcom.noriverse.sporting target_blank>img srcimg/store_play.png>/a> a classap hrefhttps://apps.apple.com/us/app/%EB%85%B8%EB%A6%AC%EB%B2%84%EC%8A%A4/id1599064598?platformiphone target_blank>img srcimg/store_app.png>/a> /div> /div> /main> --> !-- serv(서비스) end --> section classsport> div classspo_tit> ul> li>span classimpact>근처 스포츠 랭킹전참가/span>br>예약/경기매칭까지!/li> /ul> p classsubtitle>span classb>랭킹기록/span>, span classb>혼자연습/span>, span classb>동호회 토너먼트 개최/span>등br> span classb_blue>스포팅/span> 하나로 가능해요!/p> /div> !-- spo_tit end --> div classsto_dl> a classps hrefhttps://sporting.place/download target_blank>img src/source/sp/sporting_hp/img/store_play.png>플레이 스토어/a> a classas hrefhttps://apps.apple.com/kr/app/id6446752537 target_blank>img src/source/sp/sporting_hp/img/store_app.png>앱 스토어/a> /div> !-- 스포팅 웹 앱 바로가기 --> div classweb_go> a classps hrefhttps://sporting.place/source/sp/n_index.html target_blank>img src/source/sp/sporting_hp/img/logo.png>앱 바로가기/a> /div> !-- div classpromo_wrap_bg> div classpm_sect> div classyt> div> iframe width560 height315 srchttps://www.youtube.com/embed/S_Hf6RIpNKk?&playlistS_Hf6RIpNKk&loop1&autoplay1 titleYouTube video player frameborder0 allowaccelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture allowfullscreen>/iframe> /div> /div> /div> /div> --> div classspo_wrap> div classbg_color> div classscreen_shot_title> ul> li>span classscreen_shot_title_small>필요한 기능을 하나로!/span> br> 스포팅 주요 기능 /li> /ul> /div> div classspo_box1 idbg1_3_clo> div classspo_bg>img classfirst_box pc src/source/sp/sporting_hp/img/v2_랜딩페이지_메인이미지.png> /div> div classspo_bg>img classfirst_box mo src/source/sp/sporting_hp/img/v2_랜딩_한장으로_정렬.png> /div> /div> /div> /div> !-- div classspo_wrap monone> div classbg_color> div classspo_box1 idbg1_3_clo> div classspo_bg>img classfirst_box mo src/source/sp/sporting_hp/img/랜딩2_3장-2.png> /div> /div> /div> /div> div classspo_wrap monone> div classbg_color> div classspo_box1 idbg1_3_clo> div classspo_bg>img classfirst_box mo src/source/sp/sporting_hp/img/랜딩2_3장-3.png> /div> /div> div classbg_bottom>/div> /div> /div> --> /section> footer> div classinfo_footer> div classclick_txt> !-- a hrefsub/membership_terms.html target_blank>이용약관/a> --> a hrefhttps://sporting.place/source/sp/private/policy_privacy.php target_blank>개인정보 처리방침/a> !-- a hrefsub/location_terms.html target_blank>위치기반서비스 이용약관/a> --> /div> ul> li>본 사이트의 컨텐츠는 저작권법의 보호를 받는 바 br>무단 전재, 복사, 배포 등을 금합니다./li> li>Copyright Sporting Co. All rights reserved./li> /ul> /div> /footer> !-- 위로가기 --> !-- div classup> a href#>img srcimg/right.svg altup>/a> /div> --> script src/source/sp/sporting_hp/js/jquery-3.6.0.min.js>/script> script src/source/sp/sporting_hp/js/script.js>/script> script src/source/sp/sporting_hp/lib/slick/slick.js>/script> script typetext/javascript srchttps://dapi.kakao.com/v2/maps/sdk.js?appkey193c37b2d1980a2978f61e4dfd88c249&librariesservices,clusterer>/script>script> // #. 전역 지도 객체 var map; var markers ; var selectedMarker null; var ClickMarker null; var Interface_Battle_LAT 0; var Interface_Battle_LNG 0; // #. 장소 검색 객체를 생성합니다 var ps new kakao.maps.services.Places(); // #. 좌표로 주소 검색을 위한 객체 선언 var geocoder new kakao.maps.services.Geocoder(); var mMapContainer mapbox; //var mMapContainer map_here; var mViewMode 0; // #. 마커 출력 구분 ( 0: 생성된 방 마커, 1:경기장 검색 마커 ) var mCurrentSportsID 0; var mCurrentSportsMeta 0; var mCurrentPageStatus 0; // #. 현재페이지 상태 구분 : 0INDEX / 1등록 / 2수정 페이지 구분값 var mALL_CurrentSportsID 0; var m_ContractPlaceEntry ; // #. 예약된 경기장 목록 배열 var m_json_contract_ret ; // #. 가맹점 질의 결과 JSON var m_json_db_place_ret ; // #. DB 등록된 경기장 질의 결과 JSON const DF_MAX_DISTNCE_KM 10; // #. 10km 이내의 가맹점만 예약하기에서 찾음 //const DF_MAX_DISTNCE_KM 500; // #. 10km 이내의 가맹점만 예약하기에서 찾음 $(document).ready( function(){ // #. 전체 지도에서 현재위치 버튼 클릭 $(#location_cross).on(click, function(e){ // dGlobalGpsLatitude // dGlobalGpsLongitude // console.log( `dGlobalGpsLatitude${dGlobalGpsLatitude}, dGlobalGpsLongitude${dGlobalGpsLongitude}`); GoUserLocation(); }); $(#id_GoPlaceDetail).on(click, function(e) { var idPlaceCode $(#id_GoPlaceDetail).attr(data-iPlaceCode ); location.href `n_place_info.html?iPlaceCode${idPlaceCode}`; }); });//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////--------------------------------------------------------------------------------------------------------------------//// #. MAP 클래스 - 시작//--------------------------------------------------------------------------------------------------------------------////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function InitContractPlaceArray( in_data ) { m_ContractPlaceEntry in_data; return 0; } // #. 마커 출력 구분 ( 0: 만든 방 마커, 1:경기장 검색 마커 ) 설정 function SetViewMode( inViewMode ) { mViewMode inViewMode; } // #. 현재 종목 설정 function SetCurrentSportsID( inCurrentSports ) { mCurrentSportsID inCurrentSports; } // #. 현재 Sports, E-Sports 구분 ( 0 : Sports, 1 : E-Sports ) function SetCurrentMetaSports( inCurrentSportsMeta ) { mCurrentSportsMeta inCurrentSportsMeta; } // #. // #. 현재페이지 상태 구분 : 0INDEX / 1등록 / 2수정 페이지 구분값 function SetCurrentPageStatus( inCurrentPageStatus ) { mCurrentPageStatus inCurrentPageStatus; } //-----------------------------------------------------------------------// // #. 현재 위치로 이동 //-----------------------------------------------------------------------// function GoUserLocation() { // 이동할 위도 경도 위치를 생성합니다 var moveLatLon new kakao.maps.LatLng(dGlobalGpsLatitude, dGlobalGpsLongitude); // 지도 중심을 이동 시킵니다 //map.setCenter(moveLatLon); map.panTo(moveLatLon); MapDelayedRefresh(); } //-----------------------------------------------------------------------// // #. 지도 초기화 //-----------------------------------------------------------------------// function initMAP() { /////////////////////////////////////////////////////////////////////////// //-----------------------------------------------------------------------// // #. 지도 관련 영역 //-----------------------------------------------------------------------// /////////////////////////////////////////////////////////////////////////// //-----------------------------------------------------------------------// // #. 지도 초기화 //-----------------------------------------------------------------------// if( dGlobalGpsLatitude 1 ) dGlobalGpsLatitude 37.4813266; if( dGlobalGpsLongitude 1 ) dGlobalGpsLongitude 126.9524608; var mapContainer document.getElementById( mMapContainer ), // 지도를 표시할 div mapOption { center: new kakao.maps.LatLng(dGlobalGpsLatitude, dGlobalGpsLongitude), // 지도의 중심좌표 level: 5 // 지도의 확대 레벨 }; map new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 map.setDraggable(true); map.setZoomable(true); //-----------------------------------------------------------------------// // #. 마우스 드래그로 지도 이동이 완료되었을 때 마지막 // 파라미터로 넘어온 함수를 호출하도록 이벤트를 등록합니다 //-----------------------------------------------------------------------// kakao.maps.event.addListener(map, dragend, function() { //map.relayout(); RefreshMarkers(); return; }); //-----------------------------------------------------------------------// // #. 지도가 확대 또는 축소되면 마지막 파라미터로 넘어온 함수를 // 호출하도록 이벤트를 등록합니다 //-----------------------------------------------------------------------// kakao.maps.event.addListener(map, zoom_changed, function() { //map.relayout(); RefreshMarkers(); return; }); } //-----------------------------------------------------------------------// // #. 마커 출력 상태에 따른 마커 표시 //-----------------------------------------------------------------------// function RefreshMarkers( in_dGpsLatitude 0 , in_dGpsLongitude 0, in_sGpsAddress , in_sGpsLocation ) { // #. 내 위치 마커 출력 ShowMyLocation(); if( mViewMode 0 ) { if( mCurrentPageStatus 2 ) { // #. 경기 수정 페이지 갱신 show_room_edit_place(map, in_dGpsLatitude, in_dGpsLongitude, in_sGpsAddress, in_sGpsLocation ); } else { // #. 만든 방 목록 갱신 show_room_markers( map ); } } else { // #. 검색된 경기장 목록 갱신 show_search_markers( map ); } // #. 맵 갱신 map.relayout(); } //-----------------------------------------------------------------------// // #. 만든 방 위치 마커 표시 //-----------------------------------------------------------------------// function show_room_edit_place(map, in_dGpsLatitude 0 , in_dGpsLongitude 0, in_sGpsAddress , in_sGpsLocation ) { //setMarkers(null); //DeleteAllMarkers(); var iCount 1; //var points new kakao.maps.Point(dGpsLatitude, dGpsLongitude); var points new kakao.maps.LatLng(in_dGpsLatitude, in_dGpsLongitude); //--------------------------------------------------------------------// // #. 만든방 마커 이미지 경로 얻기 //--------------------------------------------------------------------// //------------------------------------------------------------------------// // #. 스포츠 별 마커 이미지 가져오기 // - iRoomMarkerType : 만든 방 마커인지 구분 ( 0: 만든방, 1:경기장 ) // - bEsports : true Esports // - iSportsID : 각 스포츠 구분 //------------------------------------------------------------------------// var strImgPath GetSports_Marker( 0, mCurrentSportsMeta, mCurrentSportsID ); var imageSrc strImgPath; var imageSize new kakao.maps.Size(32, 32); // 마커이미지의 크기입니다 var imageOption {offset: new kakao.maps.Point(0, 0)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다 var markerImage new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption); // 마커를 생성합니다 var marker new kakao.maps.Marker({ position: points, image: markerImage, // 마커이미지 설정 zIndex: 9999 }); // 마커에 click 이벤트를 등록합니다 kakao.maps.event.addListener(marker, click, function() { //alert(내방 클릭); RemoveClickMarker(); sGpsSelectAddress in_sGpsAddress; sGpsSelectLocation in_sGpsLocation; dGpsSelectLatitude in_dGpsLatitude; dGpsSelectLongitude in_dGpsLongitude; var arr_Depth {}; arr_DepthDEPTH_1 ; arr_DepthDEPTH_2 ; arr_DepthDEPTH_3 ; GetDepthFromAddress(in_sGpsAddress, arr_Depth); setGpsSelect ( sGpsSelectAddress, sGpsSelectLocation, dGpsSelectLatitude, dGpsSelectLongitude, arr_DepthDEPTH_1, arr_DepthDEPTH_2, arr_DepthDEPTH_3 ); }); // 마커가 지도 위에 표시되도록 설정합니다 marker.setMap(map); // 생성된 마커를 배열에 추가합니다 //markers.push(marker); } //-----------------------------------------------------------------------// // #. 만들어진 방 마커 표시 //-----------------------------------------------------------------------// function show_room_markers( map ) { // 지도 중심좌표를 얻어옵니다 var latlng map.getCenter(); // 지도의 레벨을 얻어옵니다 var level map.getLevel(); // 지도 영역정보를 얻어옵니다 var bounds map.getBounds(); // 영역정보의 남서쪽 정보를 얻어옵니다 var swLatlng bounds.getSouthWest(); // 영역정보의 북동쪽 정보를 얻어옵니다 var neLatlng bounds.getNorthEast(); //var message `중심좌료 : 위도 : ${latlng.getLat()} , 경도 : ${latlng.getLng()} , 레벨 : ${level}, Bounds_SW : ${swLatlng}, Bounds_NE : ${neLatlng}`; var max_Latiude neLatlng.Ma; var max_Longitude neLatlng.La; var min_Latiude swLatlng.Ma; var min_Longitude swLatlng.La; setMarkers(null); DeleteAllMarkers(); var ret_json getGpsBetweenMatchList(min_Latiude,min_Longitude,max_Latiude,max_Longitude,iGlobalMetaSports); var jsonObj JSON.parse(ret_json); var iCount 0; for (const node of jsonObj) { var points new kakao.maps.LatLng(node.dMatchLocationLatitude, node.dMatchLocationLongigude); iCount++; //addMarker_room( points, node.sMatchSportsIconPath ); addMarker_room( points, node.sMatchSportsIconPath, node ); //bounds.extend(points); } if( iCount > 0 ) { setMarkers(map); //map.setBounds(bounds); } return; } //------------------------------------------------------------------------// // 마커를 생성하고 지도위에 표시하는 함수입니다 //------------------------------------------------------------------------// function addMarker_room(position, img, inNode) { //--------------------------------------------------------------------// // #. 만든방 마커 이미지 경로 얻기 //--------------------------------------------------------------------// //------------------------------------------------------------------------// // #. 스포츠 별 마커 이미지 가져오기 // - iRoomMarkerType : 만든 방 마커인지 구분 ( 0: 만든방, 1:경기장 ) // - bEsports : true Esports // - iSportsID : 각 스포츠 구분 //------------------------------------------------------------------------// var strImgPath GetSports_Marker( 0, mCurrentSportsMeta, mCurrentSportsID, inNode ); //var imageSrc /asset/sports_icon_bad.png, // 마커이미지의 주소입니다 var imageSrc strImgPath; //img;///asset/sports_icon_bad_mark.png;//img; // 마커이미지의 주소입니다 var imageSize new kakao.maps.Size(32, 32); // 마커이미지의 크기입니다 //var imageOption {offset: new kakao.maps.Point(27, 69)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. var imageOption {offset: new kakao.maps.Point(0, 0)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다 var markerImage new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption); // 마커를 생성합니다 var marker new kakao.maps.Marker({ position: position, image: markerImage, // 마커이미지 설정 zIndex: 9999 }); // 마커에 click 이벤트를 등록합니다 kakao.maps.event.addListener(marker, click, function() { // 클릭된 마커가 없고, click 마커가 클릭된 마커가 아니면 // 마커의 이미지를 클릭 이미지로 변경합니다 if (!selectedMarker || selectedMarker ! marker) { var strUrl `/source/sp/sub/billiard/bill_room_info.html?iMatchCode${inNode.iMatchCode}`; location.href strUrl; } // 클릭된 마커를 현재 클릭된 마커 객체로 설정합니다 selectedMarker marker; }); // 마커가 지도 위에 표시되도록 설정합니다 marker.setMap(map); // 생성된 마커를 배열에 추가합니다 markers.push(marker); } //-----------------------------------------------------------------------// // #. 경기장 검색 마커 표시 //-----------------------------------------------------------------------// function show_search_markers( map ) { console.log(`YHH show_search_markers INIT`); // 지도 중심좌표를 얻어옵니다 var latlng map.getCenter(); // 지도의 레벨을 얻어옵니다 var level map.getLevel(); // 지도 영역정보를 얻어옵니다 var bounds map.getBounds(); // 영역정보의 남서쪽 정보를 얻어옵니다 var swLatlng bounds.getSouthWest(); // 영역정보의 북동쪽 정보를 얻어옵니다 var neLatlng bounds.getNorthEast(); var max_Latiude neLatlng.Ma; var max_Longitude neLatlng.La; var min_Latiude swLatlng.Ma; var min_Longitude swLatlng.La; setMarkers(null); DeleteAllMarkers(); //var keyword 볼링장; var keyword GetSportsKeyword(mCurrentSportsID); var searchOption { location: map.getCenter(), //radius: 1000, bounds : map.getBounds(), size: 15, sort: kakao.maps.services.SortBy.DISTANCE }; if( mCurrentSportsID 1) { //----------------------------------------------------------------// // #. 모든 종목 검색 //----------------------------------------------------------------// //alert(모든종목); CallAllSportsSearch(); /* mALL_CurrentSportsID 3; keyword GetSportsKeyword(mALL_CurrentSportsID); ps.keywordSearch( keyword, placesSearchCB_ALL, searchOption); */ } else { //--------------------------------------------------------------------// // #. 계약된 가맹점 정보 표시 - 지정된 종목 표시 //--------------------------------------------------------------------// ShowContractPlace( mCurrentSportsID ); //----------------------------------------------------------------// // #. 지정된 종목 검색 //----------------------------------------------------------------// console.log(`YHH (show_search_markers) 지정된 종목 검색 keyword ${keyword}`); ps.keywordSearch( keyword, placesSearchCB, searchOption); } return; } var fncMap{}; //////////////////////////////////////////////////////////////////////////// // // #. 모든 종목 검색 결과 표시 // //////////////////////////////////////////////////////////////////////////// function CallAllSportsSearch() { var iCurrentSportID 3; mALL_CurrentSportsID 3; //--------------------------------------------------------------------// // #. 계약된 가맹점 정보 표시 - 모든 종목 질의 //--------------------------------------------------------------------// ShowContractPlace( 0 ); //--------------------------------------------------------------------// // #. DB에 저장된 경기장 정보 표시 - 모든 종목 질의 //--------------------------------------------------------------------// //ShowDBPlace( 0 ); /* var searchOption { location: map.getCenter(), //radius: 1000, bounds : map.getBounds(), size: 15, sort: kakao.maps.services.SortBy.DISTANCE }; for( iiCurrentSportID; i15; i++ ) { keyword GetSportsKeyword(i); makeCallBackFnc(i,i); ps.keywordSearch( keyword, fncMapi, searchOption ); } */ } function makeCallBackFnc(name, param){ // name Function index (스포츠 종목 구분값) return fncMapnamefunction( data, status, pagination ){ if (status kakao.maps.services.Status.OK) { displayPlaces_ALL(data, param); } } } //--------------------------------------------------------------------// // #. 계약된 가맹점 정보 표시 // 0 모든 종목 질의 // 0 이외의 값 - 지정된 스포츠 //--------------------------------------------------------------------// function ShowContractPlace( in_SportID 0 ) { var mapCenter map.getCenter(); var IconSizeObject { IconWidth: 50, IconHeight:56 }; m_json_contract_ret getContractPlaceListAround ( mapCenter.Ma, //35.2149071354782, mapCenter.La, //129.106321121653, in_SportID ); var oResult JSON.parse( m_json_contract_ret.aData ); console.log( `ShowContractPlace :: in_SportID ${in_SportID}` ); console.log( m_json_contract_ret ); console.log( oResult ); if( oResult.length > 0 ) { var bReser true; // 가맹점 var icon_width 50; //32; var icon_height 56; //32; IconSizeObject.IconWidth 50; IconSizeObject.IconHeight 56; for( i0; ioResult.length; i++ ) { //console.log( oResulti ); // #.마커 위치 설정 var placePosition new kakao.maps.LatLng( oResulti.dPlaceLocationLatitude, oResulti.dPlaceLocationLongigude ); // #. 마커 이미지 설정 var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, oResulti.iPlaceSports ); if( marker_img.indexOf(.png) ! -1 ) { // #. 대회가 열리는 경기장인 경우 대회참가 아이콘 표시 var new_img_path ; if( oResulti.iPlaceMatchResultInput 1 ) { // #. 승패 입력이 가능한 가맹점 if( oResulti.iPlaceLeagueActive 1 ) { // #. 대회가 진행중인 가맹점 (랭킹전+대회) new_img_path marker_img.slice( 0, marker_img.length-4) + _rank_league + marker_img.slice( marker_img.length-4, marker_img.length); GetIconSize(2, IconSizeObject); } else { // #. 대회가 없는 가맹점 (랭킹전) new_img_path marker_img.slice( 0, marker_img.length-4) + _rank + marker_img.slice( marker_img.length-4, marker_img.length); GetIconSize(1, IconSizeObject); } } else { // #. 승패 입력이 불가능한 가맹점 (랭킹전, 대회 불가) new_img_path marker_img; GetIconSize(0, IconSizeObject); } icon_width IconSizeObject.IconWidth; icon_height IconSizeObject.IconHeight; //console.log( IconSizeObject ); /* if( oResulti.iPlaceLeagueActive 1 ) { new_img_path marker_img.slice( 0, marker_img.length-4) + _leag + marker_img.slice( marker_img.length-4, marker_img.length); new_img_path marker_img; } else { //new_img_path marker_img.slice( 0, marker_img.length-4) + _reser + marker_img.slice( marker_img.length-4, marker_img.length); new_img_path marker_img; } */ marker_img new_img_path; bReser true; //icon_width 32; //icon_width 50; //console.log( `new_img_path ${new_img_path}`); } // #. 가맹점을 지도에 표시 var obj_place {}; obj_place.address_name oResulti.sPlaceAddress; obj_place.place_name oResulti.sPlaceName; obj_place.y oResulti.dPlaceLocationLatitude; obj_place.x oResulti.dPlaceLocationLongigude; obj_place.id oResulti.iPlaceCode; obj_place.LeagueActive oResulti.iPlaceLeagueActive; //console.log( `Show Contract ${obj_place.place_name}` ); //var marker addMarker_search(obj_place, placePosition, marker_img, in_SportID, icon_width, icon_height, bReser); var marker addMarker_search(obj_place, oResulti, placePosition, marker_img, oResulti.iPlaceSports, icon_width, icon_height, bReser); // } } } //------------------------------------------------------------------------// // #. 지도 배율에 따라 마커 크기 조절 //------------------------------------------------------------------------// function GetIconSize_NonContract( iType, objSize ) { var mapLevel map.getLevel(); console.log( `GetIconSize> mapLevel${mapLevel}` ); if( mapLevel 5 ) { objSize.IconWidth 23; objSize.IconHeight 28; return 0; } if( mapLevel 6 ) { objSize.IconWidth 18; objSize.IconHeight 22; return 0; } if( mapLevel > 6 ) { objSize.IconWidth 10; objSize.IconHeight 13; return 0; } return 0; } //------------------------------------------------------------------------// // #. 지도 배율에 따라 마커 크기 조절 //------------------------------------------------------------------------// function GetIconSize( iType, objSize ) { var mapLevel map.getLevel(); console.log( `GetIconSize> mapLevel${mapLevel}` ); if( mapLevel 5 ) { switch(iType) { case 0: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 48; objSize.IconHeight 55; break; case 1: // #. 랭킹전가능, 대회 없음 objSize.IconWidth 48; objSize.IconHeight 60; break; case 2: // #. 랭킹전가능, 대회 있음 objSize.IconWidth 54; objSize.IconHeight 60; break; default: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 48; objSize.IconHeight 55; break; } return 0; } if( mapLevel 6 ) { switch(iType) { case 0: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 33; objSize.IconHeight 40; break; case 1: // #. 랭킹전가능, 대회 없음 objSize.IconWidth 33; objSize.IconHeight 43; break; case 2: // #. 랭킹전가능, 대회 있음 objSize.IconWidth 39; objSize.IconHeight 45; break; default: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 33; objSize.IconHeight 40; break; } return 0; } if( mapLevel > 6 ) { switch(iType) { case 0: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 23; objSize.IconHeight 26; break; case 1: // #. 랭킹전가능, 대회 없음 objSize.IconWidth 23; objSize.IconHeight 30; break; case 2: // #. 랭킹전가능, 대회 있음 objSize.IconWidth 26; objSize.IconHeight 30; break; default: // #. 랭킹전불가, 대회 없음 objSize.IconWidth 23; objSize.IconHeight 26; break; } return 0; } return 0; } //--------------------------------------------------------------------// // #. DB에 등록된 경기장 정보 표시 // 0 모든 종목 질의 // 0 이외의 값 - 지정된 스포츠 //--------------------------------------------------------------------// function ShowDBPlace( in_SportID 0 ) { var mapCenter map.getCenter(); m_json_db_place_ret getPlaceListAround ( mapCenter.Ma, //35.2149071354782, mapCenter.La, //129.106321121653, in_SportID ); //console.log( m_json_db_place_ret ); var oResult JSON.parse( m_json_db_place_ret.aData ); //console.log( oResult ); if( oResult.length > 0 ) { var bReser false; // 가맹점 var icon_width 50; //32; var icon_height 56; //32; //console.log( oResult.length ); for( i0; ioResult.length; i++ ) { //----------------------------------------------------------------// // #. 검색된 경기장이 현재 지도상에 보여지는 부분인지 검사 //----------------------------------------------------------------// var bMapInner IsShowInMap( oResulti.LAT, oResulti.LON ); if( !bMapInner ) { // #. 맵 바깥쪽 //console.log( ` ShowDBPlace ${oResulti.LAT}, ${oResulti.LON} , ${i} , 바깥` ); continue; } else { // #. 맵 안쪽 //console.log( ` ShowDBPlace , ${oResulti.LAT}, ${oResulti.LON} , ${i} , 안쪽` ); } // #. 계약된 가맹점인 경우 PASS함 var bContractPlace IsContractPlace( oResulti.LAT, oResulti.LON, oResulti.MAP_PLACE_NAME ); if( bContractPlace ) { //console.log( ` ShowDBPlace 계약된 가맹점 PASS ${oResulti.MAP_PLACE_NAME}`); //continue; } else { //console.log( ` ShowDBPlace 계약된 가맹점 아님 ${oResulti.MAP_PLACE_NAME}`); } //console.log(` bContractPlace ${bContractPlace}` ); // #.마커 위치 설정 var placePosition new kakao.maps.LatLng( oResulti.LAT, oResulti.LON ); // #. 마커 이미지 설정 var iSportsType parseInt(oResulti.SPORTS_TYPE); var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, iSportsType ); //console.log( `ShowDBPlace ${iSportsType} `); /* if( marker_img.indexOf(.png) ! -1 ) { var new_img_path marker_img.slice( 0, marker_img.length-4) + _reser + marker_img.slice( marker_img.length-4, marker_img.length); marker_img new_img_path; bReser true; icon_width 32; //console.log( `new_img_path ${new_img_path}`); } */ // #. 경기장을 지도에 표시 var obj_place {}; obj_place.address_name oResulti.ADDR; obj_place.place_name oResulti.MAP_PLACE_NAME; obj_place.y oResulti.LAT; obj_place.x oResulti.LON; obj_place.id oResulti.MAP_PLACE_CODE; //console.log( `Show Contract ${obj_place.place_name}` ); //var marker addMarker_search(obj_place, placePosition, marker_img, in_SportID, icon_width, icon_height, bReser); var marker addMarker_search(obj_place, placePosition, marker_img, iSportsType, icon_width, icon_height, bReser); // } } } var g_marker null; //------------------------------------------------------------------------// // 마커를 생성하고 지도위에 표시하는 함수입니다 //------------------------------------------------------------------------// function addMarker_search(obj_place, objMarker, position, img, param_CurrentSportsID 0, param_width 32, param_height 32, bReser false) { //var imageSrc /asset/sports_icon_bad.png, // 마커이미지의 주소입니다 var imageSrc img;///asset/sports_icon_bad_mark.png;//img; // 마커이미지의 주소입니다 //var imageSize new kakao.maps.Size(32, 32); // 마커이미지의 크기입니다 var imageSize new kakao.maps.Size(param_width, param_height); // 마커이미지의 크기입니다 //var imageOption {offset: new kakao.maps.Point(27, 69)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. var imageOption {offset: new kakao.maps.Point(0, 0)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다 var markerImage new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption); var zIndex 9990; // #. 가맹점 마커는 최상위로 올리기 if( bReser ) zIndex 9999; // 마커를 생성합니다 var marker new kakao.maps.Marker({ position: position, image: markerImage, // 마커이미지 설정 opacity: 1, zIndex: zIndex }); g_marker marker; //console.log( marker ); // 마커에 click 이벤트를 등록합니다 kakao.maps.event.addListener(marker, click, function( event ) { //------------------------------------------------------------// // #. obj_place 인수에 필요한 정보만 들어 있음 //------------------------------------------------------------// var strDetailAddress obj_place.address_name; // #. 상세주소 var strPlaceName obj_place.place_name; // #. 업체명 var valLAT obj_place.y; // #. GPS Latitude var valLNG obj_place.x; // #. GPS Longitude var PlaceId obj_place.id; // #. Place Code var LeagueActive obj_place.LeagueActive; // #. 리그 동작 여부 console.log( `mCurrentPageStatus ${mCurrentPageStatus}`); /* //------------------------------------------------------------// // #. objMarker 인수에 아래의 정보가 모두 들어 있음 //------------------------------------------------------------// { iContractCode: 700000039, iPlaceCode: 710000045, sPlaceId: , iPlaceSports: 4, iPlaceStatus: 1, sPlaceName: 울릉스포팅 당구2, sPlaceAddress: 경상북도 울릉군 울릉읍 도동리, sPlaceCity: 경북, sPlaceArea: 울릉군, sPlaceAreaSub: , sPlaceContact: 0000000, dPlaceLocationLatitude: 37.483, dPlaceLocationLongigude: 130.91, sPlaceIntro: , sPlaceImage: , jPlaceReference: , iPlaceSettingOption: 0, iPlaceLeagueActive: 1, iPlaceReserveAutoAccept: 0, iPlaceMatchResultInput: 0, sPlaceReserveWeekdayStartTime: null, sPlaceReserveWeekdayEndTime: null, sPlaceReserveWeekendStartTime: null, sPlaceReserveWeekendEndTime: null, iPlaceProductCode: 1000000042, iPlacePaymentType: 1, iPlacePaymentPrice: 5000, jPlaceSub: , sPlaceSports: 당구, sPlaceSportsIconPath: /asset/sports_icon_bil_mark.png } */ // #. 기존 클릭된 마커 삭제 (중복 표시 방지) RemoveClickMarker( ); //////////////////////////////////////////////////////////////////// //----------------------------------------------------------------// // #. 동호화 토너먼트 페이지에서 마커 클릭시 관련 처리후 함수 리턴 //----------------------------------------------------------------// //////////////////////////////////////////////////////////////////// if( mCurrentPageStatus 1 ) { // #. 컨트롤에 표시 setGpsSelect ( objMarker.sPlaceAddress, objMarker.sPlaceName, objMarker.dPlaceLocationLatitude, objMarker.dPlaceLocationLongigude, objMarker.sPlaceCity, objMarker.sPlaceArea, objMarker.sPlaceAreaSub ); return; } //////////////////////////////////////////////////////////////////// //----------------------------------------------------------------// // #. 클릭시 정보팝업 내용 설정 // - 여기서 Div에 필요한 인수를 전닳하고 값을 변경해야함 //----------------------------------------------------------------// //////////////////////////////////////////////////////////////////// //----------------------------------------------------------------// // #. 정보 팝업 - 선택된 매장의 기본 정보를 설정 //----------------------------------------------------------------// $(#IDResv).attr(data-iPlaceCode, objMarker.iPlaceCode); $(#IDResv).attr(data-iPlaceProductCode, objMarker.iPlaceProductCode); $(#id_GoPlaceDetail).attr(data-iPlaceCode, objMarker.iPlaceCode ); //----------------------------------------------------------------// // #. 정보 팝업 - 당구장명 설정 //----------------------------------------------------------------// $(#pop_place_name).text(objMarker.sPlaceName); //----------------------------------------------------------------// // #. 정보 팝업 - 매장 이미지 표시 //----------------------------------------------------------------// var strPlaceImage objMarker.sPlaceImage.trim(); if( strPlaceImage.length > 0 ) { $(#pop_place_img).attr(src, strPlaceImage ); } else { $(#pop_place_img).attr(src, /asset/n_asset_place_default/place_default_01.png); } //----------------------------------------------------------------// // #. 정보 팝업 - 상품/장비 표시 //----------------------------------------------------------------// $(#pop_place_badge_section).empty(); if( objMarker.jPlaceSub.trim().length > 0 ) { // #. 장비가 등록됨 var JSON_PLACE_SUB JSON.parse (objMarker.jPlaceSub); var strPlaceSubBadgeTag ; for( i0; iJSON_PLACE_SUB.length; i++ ) { if( i>3 ) break; var strCurSubName JSON_PLACE_SUBi.sPlaceSubName; //var strCurSubCode JSON_PLACE_SUBi.iPlaceSubCode; strPlaceSubBadgeTag + ` div classbadge ranking_badge> p classbadge_text>${strCurSubName}/p> /div>\ `; } $(#pop_place_badge_section).append( strPlaceSubBadgeTag ); } else { // #. 장비 등록이 없음 } //////////////////////////////////////////////////////////////////// //----------------------------------------------------------------// // #. 클릭시 예약팝업 내용 설정 // - 여기서 Div에 필요한 인수를 전닳하고 값을 변경해야함 //----------------------------------------------------------------// //////////////////////////////////////////////////////////////////// //----------------------------------------------------------------// // #. 예약팝업 - 매장명 //----------------------------------------------------------------// $(#pop_resv_placename).text(objMarker.sPlaceName); //----------------------------------------------------------------// // #. 예약팝업 - 일시 // - 오늘 날짜 설정 //----------------------------------------------------------------// var currentDate new Date(); var currentDate GetDatefunc( currentDate, 0); $(#pop_resv_date).val(currentDate); $(#pop_resv_date).attr(data-valStartWeekDay,objMarker.sPlaceReserveWeekdayStartTime ); $(#pop_resv_date).attr(data-valEndWeekDay,objMarker.sPlaceReserveWeekdayEndTime ); $(#pop_resv_date).attr(data-valStartWeekEnd,objMarker.sPlaceReserveWeekendStartTime ); $(#pop_resv_date).attr(data-valEndWeekEnd,objMarker.sPlaceReserveWeekendEndTime ); //----------------------------------------------------------------// // #. 예약팝업 - 예약가능 시간 Combo 설정 //----------------------------------------------------------------// /* sPlaceReserveWeekdayStartTime: 09:00:00, sPlaceReserveWeekdayEndTime: 20:00:00, sPlaceReserveWeekendStartTime: 09:00:00, sPlaceReserveWeekendEndTime: 22:00:00, */ SetResvTimeSelect(); //----------------------------------------------------------------// // #. 예약팝업 - 예약 상품 설정 //----------------------------------------------------------------// $(#pop_resv_equiment).empty(); if( objMarker.jPlaceSub.trim().length > 0 ) { // #. 장비가 등록됨 var JSON_PLACE_SUB JSON.parse (objMarker.jPlaceSub); var strPlaceSubequimentTag ; strPlaceSubequimentTag + `select>`; for( i0; iJSON_PLACE_SUB.length; i++ ) { if( i>3 ) break; var strCurSubName JSON_PLACE_SUBi.sPlaceSubName; var strCurSubCode JSON_PLACE_SUBi.iPlaceSubCode; var strCurSubCount JSON_PLACE_SUBi.iPlaceSubCount; strPlaceSubequimentTag + ` option value${strCurSubCode}> ${strCurSubName} (${strCurSubCount}개 보유) /option> `; } strPlaceSubequimentTag + `/select>span classpulldown_icon_sel_position> img src/asset/n_asset/header_back.png> /span>`; $(#pop_resv_equiment).append( strPlaceSubequimentTag ); } else { // #. 장비 등록이 없음 } //----------------------------------------------------------------// // #. 예약팝업 - 결재 가능 방식 설정 //----------------------------------------------------------------// var iPlacePaymentType objMarker.iPlacePaymentType; var strPlacePaymentTypeTag ; $(#pop_resv_payment_type).empty(); strPlacePaymentTypeTag + `select>`; switch( iPlacePaymentType ) { case 1: // 선불 결재만 strPlacePaymentTypeTag + `option value1>선불결제/option>`; break; case 2: // 후불 결재만 strPlacePaymentTypeTag + `option value2>현장결제/option>`; break; default: // 둘다 strPlacePaymentTypeTag + `option value1>선불결제/option>`; strPlacePaymentTypeTag + `option value2>현장결제/option>`; break; } strPlacePaymentTypeTag + `/select>span classpulldown_icon_sel_position> img src/asset/n_asset/header_back.png> /span>`; $(#pop_resv_payment_type).append( strPlacePaymentTypeTag ); //----------------------------------------------------------------// // #. 팝업 표시 //----------------------------------------------------------------// $(.main_wrap).show(100); $( .location_cross ).css(bottom, 160px); //----------------------------------------------------------------// // #. 클릭된 마커를 현재 클릭된 마커 객체로 설정합니다 //----------------------------------------------------------------// selectedMarker marker; }); //----------------------------------------------------------------// // 마커가 지도 위에 표시되도록 설정합니다 //----------------------------------------------------------------// marker.setMap(map); //----------------------------------------------------------------// // 생성된 마커를 배열에 추가합니다 //----------------------------------------------------------------// markers.push(marker); } //------------------------------------------------------------------------// // #. 예약 가능 시각 설정 //------------------------------------------------------------------------// $(#pop_resv_date).on(change, function(e){ //console.log( Date Change ); SetResvTimeSelect(); }); function SetResvTimeSelect() { //--------------------------------------------------------------------// // #. 선택된 날짜의 요일에 따라 시간을 다르게 설정해야함. //--------------------------------------------------------------------// var strSelDate $(#pop_resv_date).val(); var valStartWeekDay $(#pop_resv_date).attr(data-valStartWeekDay); var valEndWeekDay $(#pop_resv_date).attr(data-valEndWeekDay); var valStartWeekEnd $(#pop_resv_date).attr(data-valStartWeekEnd); var valEndWeekEnd $(#pop_resv_date).attr(data-valEndWeekEnd); const dayOfWeek new Date(strSelDate).getDay(); var TimeToStart valStartWeekDay; var TimeToEnd valEndWeekDay; // #. 주말인 경우 주말 설정값을 적용 if( dayOfWeek 6 || dayOfWeek 0 ) { TimeToStart valStartWeekEnd; TimeToEnd valEndWeekEnd; } /* console.log( ` strSelDate ${strSelDate}, valStartWeekDay ${valStartWeekDay}, valEndWeekDay ${valEndWeekDay}, valStartWeekEnd ${valStartWeekEnd}, valEndWeekEnd ${valEndWeekEnd}, dayOfWeek ${dayOfWeek}, TimeToStart ${TimeToStart}, TimeToEnd ${TimeToEnd}, ` ); */ //--------------------------------------------------------------------// // #. 시작 시간부터 30분씩 증가하며 SELECT BOX 구성 //--------------------------------------------------------------------// //var oSelectDate new Date(`${strSelDate} ${TimeToStart} ` ); let CurDateNode new Date( (`${strSelDate} ${TimeToStart}`) ); let oEndDate new Date( (`${strSelDate} ${TimeToEnd}`) ); // #. 종료시각이 시작시각 이전이면 다음날로 처리 if( CurDateNode.getTime() > oEndDate.getTime() ) { oEndDate.setDate( CurDateNode.getDate() + 1 ); } var strTimeSelectTag select>; for(var i0; i50; i++) { strOptionValue GetSelectTimeString(CurDateNode); strTimeSelectTag + `option value${strOptionValue}>${strOptionValue}/option>`; CurDateNode.setMinutes( CurDateNode.getMinutes() + 30 ); if( CurDateNode.getTime() > oEndDate.getTime() ) { break; } //if( i>3 ) break; } $(#sel_resv_time).empty(); //console.log( strTimeSelectTag ); strTimeSelectTag + `/select>span classpulldown_icon_sel_position> img src/asset/n_asset/header_back.png> /span>`; $(#sel_resv_time).append(strTimeSelectTag); return; } //------------------------------------------------------------------------// // #. 지정된 형식으로 시간 포멧 반환 //------------------------------------------------------------------------// function GetSelectTimeString( inDate ) { var ParamDate new Date(inDate); var strRet `${String(ParamDate.getHours()).padStart(2, 0)}:${String(ParamDate.getMinutes()).padStart(2, 0)}`; //`${inDate.GetHours()}:${inDate.Minutes()}`; //console.log( inDate ); return strRet; } // #. 지도에 마커 클릭이벤트 처리 function addMarker_search_keyword(obj_place, position, img, param_CurrentSportsID 0, param_width 32, param_height 32, bReser false) { //var imageSrc /asset/sports_icon_bad.png, // 마커이미지의 주소입니다 var imageSrc img;///asset/sports_icon_bad_mark.png;//img; // 마커이미지의 주소입니다 //var imageSize new kakao.maps.Size(32, 32); // 마커이미지의 크기입니다 var imageSize new kakao.maps.Size(param_width, param_height); // 마커이미지의 크기입니다 //var imageOption {offset: new kakao.maps.Point(27, 69)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. var imageOption {offset: new kakao.maps.Point(0, 0)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다 var markerImage new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption); var zIndex 9990; // #. 가맹점 마커는 최상위로 올리기 if( bReser ) zIndex 9999; // 마커를 생성합니다 var marker new kakao.maps.Marker({ position: position, image: markerImage, // 마커이미지 설정 opacity: 1, zIndex: zIndex }); g_marker marker; //console.log( marker ); // 마커에 click 이벤트를 등록합니다 kakao.maps.event.addListener(marker, click, function( event ) { var strDetailAddress obj_place.address_name; var strPlaceName obj_place.place_name; var valLAT obj_place.y; var valLNG obj_place.x; var PlaceId obj_place.id; var LeagueActive obj_place.LeagueActive; //alert(`room click mCurrentPageStatus ${mCurrentPageStatus}`); //console.log( obj_place ); RemoveClickMarker( ); console.log( `YHH (addMarker_search_keyword) mCurrentPageStatus${mCurrentPageStatus}`); switch( mCurrentPageStatus ) { case 1: // #. 방만들기 페이지 if( PlaceId > 0 ) { sGpsLocationId `${PlaceId}`; } else { sGpsLocationId ; } sGpsSelectAddress strDetailAddress; sGpsSelectLocation strPlaceName; dGpsSelectLatitude valLAT; dGpsSelectLongitude valLNG; var arr_Depth {}; arr_DepthDEPTH_1 ; arr_DepthDEPTH_2 ; arr_DepthDEPTH_3 ; GetDepthFromAddress(strDetailAddress, arr_Depth); setGpsSelect ( sGpsSelectAddress, sGpsSelectLocation, dGpsSelectLatitude, dGpsSelectLongitude, arr_DepthDEPTH_1, arr_DepthDEPTH_2, arr_DepthDEPTH_3 ); break; case 2: // #. 방관리 페이지 //alert(방관리 - 장소 클릭); break; default: // #. index 페이지 //if (!selectedMarker || selectedMarker ! marker) { //URL_MATCH_CREATE + `?iMatchSports${종목코드}&sGpsAddress${GPS상세주소}&sGpsLocation${GPS장소명}&dGpsLatitude${dGpsLatitude}&dGpsLongitude${dGpsLongitude}` //--------------------------------------------------------// // #. 검색된 주소에는 Depth가 없으므로 Depth 수동으로 처리한다. //--------------------------------------------------------// var arr_Depth {}; arr_DepthDEPTH_1 ; arr_DepthDEPTH_2 ; arr_DepthDEPTH_3 ; GetDepthFromAddress(strDetailAddress, arr_Depth); var CurSportsID iGlobalMetaSports; if( param_CurrentSportsID ! 0 ) { CurSportsID param_CurrentSportsID; } //var strParams `?iMatchSports${CurSportsID}`; //var strParams `?iMetaSports${CurSportsID}`; var strParams `?sGpsAddress${strDetailAddress}`; strParams + `&sGpsLocation${encodeURIComponent(strPlaceName)}`; strParams + `&dGpsLatitude${valLAT}`; strParams + `&dGpsLongitude${valLNG}`; strParams + `&sGpsAddressCity${arr_DepthDEPTH_1}`; strParams + `&sGpsAddressArea${arr_DepthDEPTH_2}`; strParams + `&sGpsAddressAreaSub${arr_DepthDEPTH_3}`; strParams + `&sGpsLocationId${PlaceId}`; //var strUrl URL_MATCH_CREATE + `?iMatchSports${CurSportsID}&sGpsAddress${strDetailAddress}&sGpsLocation${strPlaceName}&dGpsLatitude${valLAT}&dGpsLongitude${valLNG}&sGpsAddressCity${arr_DepthDEPTH_1}&sGpsAddressArea${arr_DepthDEPTH_2}&sGpsAddressAreaSub${arr_DepthDEPTH_3}&sGpsLocationId${PlaceId}`; //var strUrl URL_MATCH_CREATE + strParams; var strUrl URL_MATCH_CREATE + strParams; //console.log(strUrl); //location.href strUrl; //alert(strUrl); //--------------------------------------------------------// // #. 경기장 팝업 표시 //--------------------------------------------------------// var arrPopupParams {}; arrPopupParamsSPORTS_ID CurSportsID; arrPopupParamsPLACE_ID PlaceId; arrPopupParamsPLACE_NAME strPlaceName; arrPopupParamsPLACE_ADDR strDetailAddress; arrPopupParamsPLACE_DEPTH1 arr_DepthDEPTH_1; arrPopupParamsPLACE_DEPTH2 arr_DepthDEPTH_2; arrPopupParamsPLACE_DEPTH3 arr_DepthDEPTH_3; arrPopupParamsPLACE_LAT valLAT; arrPopupParamsPLACE_LNG valLNG; arrPopupParamsMAKE_URL strUrl; arrPopupParamsPLACE_CONTRACT bReser; arrPopupParamsIN_CASE 0; arrPopupParamsLEAGUE_ACTIVE LeagueActive; //ShowPlacePopup( arrPopupParams ); // #. 가맹 요청 팝업 띄우기 ShowPlacePopup_AskContract( arrPopupParams ); } // 클릭된 마커를 현재 클릭된 마커 객체로 설정합니다 selectedMarker marker; break; } }); // 마커가 지도 위에 표시되도록 설정합니다 marker.setMap(map); // 생성된 마커를 배열에 추가합니다 markers.push(marker); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // #. INDEX 페이지에서 경기창 클릭시 팝업 처리 // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function ShowPlacePopup( inParams ) { //console.log( inParams ); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_MATCH, data : { iEndpointCase : 21112, iPlaceId : inParamsPLACE_ID, iMatchSports : inParamsSPORTS_ID }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sReason aResponse.sReason; var aData aResponse.aData; if ( iQuery > 0 ) { // Success RevPlacePupupData( true, inParams, aData ); } else { // False //alert( sReason ); RevPlacePupupData( false, inParams, aData ); } } }); return; } //------------------------------------------------------------------------// // #. 비가맹점 마커 클릭시 팝업 //------------------------------------------------------------------------// function ShowPlacePopup_AskContract( inParams ) { console.log( inParams ); $(.main_wrap).hide(0); $(#noncontractplace_name).text(inParamsPLACE_NAME); $(#noncontractplace_btn).attr(data-sPlaceId, inParamsPLACE_ID); $(#noncontractplace_btn).attr(data-iPlaceSports, inParamsSPORTS_ID); $(#noncontractplace_btn).attr(data-sPlaceName, inParamsPLACE_NAME); $(#noncontractplace_btn).attr(data-sPlaceAddress, inParamsPLACE_ADDR); $(#noncontractplace_btn).attr(data-dPlaceLat, inParamsPLACE_LAT); $(#noncontractplace_btn).attr(data-dPlaceLng, inParamsPLACE_LNG); $(.map_non_affi_wrap).show(100); $( .location_cross ).css(bottom, 160px); return; } //------------------------------------------------------------------------// // #. 장소 클릭후 해당 경기장에서 생성된 방 리스트 정보 수신시 //------------------------------------------------------------------------// function RevPlacePupupData( in_DataExist, inParams, aData ) { //--------------------------------------------------------------------// // #. Popup 표시 //--------------------------------------------------------------------// //console.log( inParams ); var currentUserCode 0; currentUserCode 0; var iListCount 0; var tag_box ; var mPlaceId inParamsPLACE_ID; var mSportsId inParamsSPORTS_ID; var mLeagueActive inParamsLEAGUE_ACTIVE; //console.log(inParams); $(#txtPlaceName).text( inParamsPLACE_NAME ); $(#txtPlaceName_reserve).text( inParamsPLACE_NAME ); $(#secMatchListBox).empty(); if( in_DataExist ) { if( aData.length > 0 ) { var oJson JSON.parse(aData); iListCount oJson.length; $(.more_match_num).text(iListCount); if(iListCount > 0 ) { for( i0; iiListCount; i++ ) { //----------------------------------------------------// // #. 내가 만든방과 구분 //----------------------------------------------------// //console.log( oJsoni ); var strBtnName 참가; var strBack ; if( currentUserCode oJsoni.iMatchOwnerCode ) { // #. 내가 만든 방 strBtnName 관리; strBack stylebackground-color: #008848; } tag_box ` div classarticle_box > a classfree_box_inner href onclickgo_list_link(${oJsoni.iMatchCode});> div classleft_boxes clearfix> div classinner_text clearfix> span classsmall_box_text>${oJsoni.sMatchType}/span> p classboard_title>${oJsoni.sMatchTitle}/p> div classboard_detail_wrap clearfix> div classboard_detail> p classboard_date> img src/asset/icon_billiard_calendar.png> ${oJsoni.sMatchDate} /p> /div> /div> /div> div classjoin_btn all_s onclickgo_list_link(${oJsoni.iMatchCode}); ${strBack}> p>${strBtnName}/p> /div> /div> /a> /div> `; $(#secMatchListBox).append(tag_box); } } else { // #. 경기 없음 tag_box ` div idsecMatchListBox_empty classemptybox> div classemptybox_inner> div classemptyimg>img src/asset/billiard_empty.png>/div> p classempty_text>아직 경기가 없어요ㅠ /p> /div> /div> `; $(#secMatchListBox).append(tag_box); } } } else { // #. 경기 없음 tag_box ` div idsecMatchListBox_empty classemptybox> div classemptybox_inner> div classemptyimg>img src/asset/billiard_empty.png>/div> p classempty_text>아직 경기가 없어요ㅠ /p> /div> /div> `; $(#secMatchListBox).append(tag_box); } //--------------------------------------------------------------------// // #. 예약하기 표시 //--------------------------------------------------------------------// if( inParamsPLACE_CONTRACT ) { getPlaceItemSubList( inParams PLACE_ID ); // #. 가맹점 $(#popup_reserve_room).css(display, block); $(#popup_reserve_room).attr(data-placeid, mPlaceId); //--------------------------------------------------------------------// // #. 강동구 이외의 지역에서는 랭킹/경기 버튼 숨김 //--------------------------------------------------------------------// if( mLeagueActive ! 1 ) { $(#popup_make_room).css(display, none); $(#popup_make_room).attr(data-placeid, 0); } else { $(#popup_make_room).css(display, block); $(#popup_make_room).attr(data-placeid, mPlaceId); } } else { // #. 비가맹점 $(#popup_reserve_room).css(display, none); $(#popup_reserve_room).attr(data-placeid, 0); $(#popup_make_room).attr(data-placeid, 0); } //--------------------------------------------------------------------// // #. 경기만들기 링크 설정 //--------------------------------------------------------------------// //console.log(inParamsMAKE_URL); var strMakeUrl `${inParamsMAKE_URL}&iMetaSports${mSportsId}`; //$(#popup_make_room).attr(href, inParamsMAKE_URL ); //alert(strMakeUrl); // @Less. 1106 경기만들기 링크 제거 // // $(#popup_make_room).attr(href, strMakeUrl ); //--------------------------------------------------------------------// // #. 경기 목록 팝업 표시 //--------------------------------------------------------------------// $(#pop_match_cancel_question).show(); $(body).css(overflow, hidden); if ( iFlagReserveInCase > 0 ) { $(.make_match.reserv_go_btn).trigger(click); } iFlagReserveInCase 0; return; } function go_list_link( in_matchcode ) { window.event.preventDefault(); window.event.stopPropagation(); var link_url `/source/sp/sub/billiard/bill_room_info.html?iMatchCode${in_matchcode}`; location.href link_url; return true; } //----------------------------------------------------------------------------// // #장소검색이 완료됐을 때 호출되는 콜백함수 입니다 //----------------------------------------------------------------------------// function placesSearchCB(data, status, pagination) { console.log(`placesSearchCB>`); if (status kakao.maps.services.Status.OK) { // 정상적으로 검색이 완료됐으면 // 검색 목록과 마커를 표출합니다 displayPlaces(data); // 페이지 번호를 표출합니다 //displayPagination(pagination); } else if (status kakao.maps.services.Status.ZERO_RESULT) { //alert(검색 결과가 존재하지 않습니다.); //console.log( 검색 결과가 존재하지 않습니다. ); return; } else if (status kakao.maps.services.Status.ERROR) { //alert(검색 결과 중 오류가 발생했습니다.); //console.log( 검색 결과 중 오류가 발생했습니다. ); return; } } //----------------------------------------------------------------------------// // #장소검색이 완료됐을 때 호출되는 콜백함수 입니다 //----------------------------------------------------------------------------// function placesSearchCB_ALL(data, status, pagination) { if (status kakao.maps.services.Status.OK) { // 정상적으로 검색이 완료됐으면 // 검색 목록과 마커를 표출합니다 displayPlaces_ALL(data, 0); //displayPlaces_ALL(data); var searchOption_ALL { location: map.getCenter(), //radius: 1000, //bounds : size: 15, sort: kakao.maps.services.SortBy.DISTANCE }; if( mALL_CurrentSportsID 15 ) { mALL_CurrentSportsID++; var keyword_ALL GetSportsKeyword(mALL_CurrentSportsID); ps.keywordSearch( keyword_ALL, placesSearchCB_ALL, searchOption_ALL); } } else if (status kakao.maps.services.Status.ZERO_RESULT) { //console.log( 검색 결과가 존재하지 않습니다. ); return; } else if (status kakao.maps.services.Status.ERROR) { //console.log( 검색 결과 중 오류가 발생했습니다. ); return; } } // 검색 결과 목록과 마커를 표출하는 함수입니다 function displayPlaces(places) { var listStr ; // 검색 결과 목록에 추가된 항목들을 제거합니다 //removeAllChildNods(listEl); // 지도에 표시되고 있는 마커를 제거합니다 //removeMarker(); for ( var i0; iplaces.length; i++ ) { var bReser false; var icon_width 30; //32; var icon_height 30; //32; var IconSizeObject { IconWidth: 30, IconHeight:30 }; console.log( `placesi ${i}` ); console.log( placesi ); // 마커를 생성하고 지도에 표시합니다 var placePosition new kakao.maps.LatLng(placesi.y, placesi.x); //var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, mCurrentSportsID ); var marker_img /asset/n_asset_map_mark/icon_non_affiliated.png; //var bContractPlace false; GetIconSize_NonContract(0, IconSizeObject); icon_width IconSizeObject.IconWidth; icon_height IconSizeObject.IconHeight; // #. 계약된 가맹점인 경우 PASS함 var bContractPlace IsContractPlace( placesi.y, placesi.x, placesi.place_name ); if( bContractPlace ) { console.log( `계약된 가맹점 PASS(종목별) ${placesi.place_name}`); continue; } //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - BEGIN //------------------------------------------------------------------------------------------------------------// var current_place_id placesi.id; console.log( `비계약 가맹점 (종목별) ${placesi.place_name}`); if(typeof current_place_id undefined || current_place_id null || current_place_id ) { console.log( `${i} undefined` ); } else { /* if (m_ContractPlaceEntry.indexOf(current_place_id) ! -1) { // #. 계약 경기장 console.log( `계약 dis ${current_place_id}` ); if( marker_img.indexOf(.png) ! -1 ) { var new_img_path marker_img.slice( 0, marker_img.length-4) + _reser + marker_img.slice( marker_img.length-4, marker_img.length); marker_img new_img_path; bReser true; icon_width 32; //console.log( `new_img_path ${new_img_path}`); } } */ } //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - END //------------------------------------------------------------------------------------------------------------// //var marker addMarker_search(placesi, placePosition, marker_img, 0, bReser); //console.log( `Call Before ${marker_img}` ); if( !bReser ) { var marker addMarker_search_keyword(placesi, placePosition, marker_img, 0, icon_width, icon_height, bReser); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정하기위해 // LatLngBounds 객체에 좌표를 추가합니다 //bounds.extend(placePosition); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정합니다 //map.setBounds(bounds); } /* // 검색 결과 목록과 마커를 표출하는 함수입니다 function displayPlaces(places) { var listStr ; // 검색 결과 목록에 추가된 항목들을 제거합니다 //removeAllChildNods(listEl); // 지도에 표시되고 있는 마커를 제거합니다 //removeMarker(); for ( var i0; iplaces.length; i++ ) { var bReser false; var icon_width 50; //32; var icon_height 56; //32; var IconSizeObject { IconWidth: 50, IconHeight:56 }; // 마커를 생성하고 지도에 표시합니다 var placePosition new kakao.maps.LatLng(placesi.y, placesi.x); var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, mCurrentSportsID ); //var bContractPlace false; GetIconSize(0, IconSizeObject); icon_width IconSizeObject.IconWidth; icon_height IconSizeObject.IconHeight; // #. 계약된 가맹점인 경우 PASS함 var bContractPlace IsContractPlace( placesi.y, placesi.x, placesi.place_name ); if( bContractPlace ) { console.log( `계약된 가맹점 PASS(종목별) ${placesi.place_name}`); continue; } //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - BEGIN //------------------------------------------------------------------------------------------------------------// var current_place_id placesi.id; console.log( `비계약 가맹점 (종목별) ${placesi.place_name}`); if(typeof current_place_id undefined || current_place_id null || current_place_id ) { console.log( `${i} undefined` ); } else { if (m_ContractPlaceEntry.indexOf(current_place_id) ! -1) { // #. 계약 경기장 console.log( `계약 dis ${current_place_id}` ); if( marker_img.indexOf(.png) ! -1 ) { var new_img_path marker_img.slice( 0, marker_img.length-4) + _reser + marker_img.slice( marker_img.length-4, marker_img.length); marker_img new_img_path; bReser true; icon_width 32; //console.log( `new_img_path ${new_img_path}`); } } } //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - END //------------------------------------------------------------------------------------------------------------// //var marker addMarker_search(placesi, placePosition, marker_img, 0, bReser); //console.log( `Call Before ${marker_img}` ); if( !bReser ) { var marker addMarker_search_keyword(placesi, placePosition, marker_img, 0, icon_width, icon_height, bReser); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정하기위해 // LatLngBounds 객체에 좌표를 추가합니다 //bounds.extend(placePosition); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정합니다 //map.setBounds(bounds); } */ // #. 계약된 가맹점인검사 function IsContractPlace( in_LAT, in_LNG, in_PlaceName ) { var CutCount 4; var Converted_LAT ConvertFloorValue(in_LAT, CutCount); var Converted_LNG ConvertFloorValue(in_LNG, CutCount); var oResult JSON.parse( m_json_contract_ret.aData ); //console.log( oResult ); var idx 0; //console.log( `IsContractPlace oResult.length ${oResult.length}`); if( oResult.length > 0 ) { for( idx0; idxoResult.length; idx++ ) { var Contract_Lat ConvertFloorValue(oResultidx.dPlaceLocationLatitude, CutCount); var Contract_Lng ConvertFloorValue(oResultidx.dPlaceLocationLongigude, CutCount); //console.log(`Converted_LAT${Converted_LAT}, Converted_LNG${Converted_LNG}, in_PlaceName${oResultidx.sPlaceName} , (${Contract_Lat}, ${Contract_Lng})` ); if( Converted_LAT Contract_Lat && Converted_LNG Contract_Lng ) { return true; } } } return false; } // #. 계약된 가맹점인검사 function IsContractPlace_Exact( in_LAT, in_LNG, in_PlaceName ) { var CutCount 10; var Converted_LAT ConvertFloorValue(in_LAT, CutCount); var Converted_LNG ConvertFloorValue(in_LNG, CutCount); var oResult JSON.parse( m_json_contract_ret.aData ); //console.log( oResult ); var idx 0; //console.log( `IsContractPlace oResult.length ${oResult.length}`); if( oResult.length > 0 ) { for( idx0; idxoResult.length; idx++ ) { var Contract_Lat ConvertFloorValue(oResultidx.dPlaceLocationLatitude, CutCount); var Contract_Lng ConvertFloorValue(oResultidx.dPlaceLocationLongigude, CutCount); //console.log(`Converted_LAT${Converted_LAT}, Converted_LNG${Converted_LNG}, in_PlaceName${oResultidx.sPlaceName} , (${Contract_Lat}, ${Contract_Lng})` ); if( Converted_LAT Contract_Lat && Converted_LNG Contract_Lng ) { return true; } } } return false; } // #. DB에 등록된 경기장인지 검사 function IsDBPlace( in_LAT, in_LNG, in_PlaceName ) { var CutCount 4; var Converted_LAT ConvertFloorValue(in_LAT, CutCount); var Converted_LNG ConvertFloorValue(in_LNG, CutCount); var oResult JSON.parse( m_json_db_place_ret.aData ); var idx 0; //console.log( `IsDBPlace oResult.length ${oResult.length}`); if( oResult.length > 0 ) { for( idx0; idxoResult.length; idx++ ) { var Contract_Lat ConvertFloorValue(oResultidx.dPlaceLocationLatitude, CutCount); var Contract_Lng ConvertFloorValue(oResultidx.dPlaceLocationLongigude, CutCount); //console.log(`Converted_LAT${Converted_LAT}, Converted_LNG${Converted_LNG}, in_PlaceName${in_PlaceName} , (${Contract_Lat}, ${Contract_Lng})` ); if( Converted_LAT Contract_Lat && Converted_LNG Contract_Lng ) { return true; } } } return false; } // #. 지정된 자리수의 소수점 이하 버림 function ConvertFloorValue( inVal, inCount ) { var temp1 inVal * ( 10 ** inCount ); var temp2 Math.floor(temp1); var ret temp2 / ( 10 ** inCount ); return ret; } // 검색 결과 목록과 마커를 표출하는 함수입니다 function displayPlaces_ALL(places, param_curID) { //function displayPlaces_ALL(places) { var listStr ; // 검색 결과 목록에 추가된 항목들을 제거합니다 //removeAllChildNods(listEl); // 지도에 표시되고 있는 마커를 제거합니다 //removeMarker(); //console.log( m_ContractPlaceEntry ); if( param_curID 0 ) { param_curID mALL_CurrentSportsID; } //--------------------------------------------------------------------// // #. 검색된 경기장 목록 순환 ( 종목 전체 검색 CallBack ) //--------------------------------------------------------------------// for ( var i0; iplaces.length; i++ ) { var bReser false; var icon_width 50; //32; var icon_height 56; //32; //----------------------------------------------------------------// // #. 검색된 경기장이 현재 지도상에 보여지는 부분인지 검사 //----------------------------------------------------------------// var bMapInner IsShowInMap( placesi.y, placesi.x ); if( !bMapInner ) { // #. 맵 바깥쪽 continue; } else { // #. 맵 안쪽 //console.log( ` displayPlaces_ALL mALL_CurrentSportsID${mALL_CurrentSportsID} , ${i} , 안쪽` ); } // #. 계약된 가맹점인 경우 PASS함 var bContractPlace IsContractPlace( placesi.y, placesi.x, placesi.place_name ); if( bContractPlace ) { //console.log( `계약된 가맹점 PASS ${placesi.place_name}`); continue; } //console.log(` bContractPlace ${bContractPlace}` ); // #. DB에 등록된 경기인 경우 PASS함 (이미 출력함) var bContractPlace IsDBPlace( placesi.y, placesi.x, placesi.place_name ); if( bContractPlace ) { //console.log( `DB에 등록된 경기장 ${placesi.place_name}`); continue; } // 마커를 생성하고 지도에 표시합니다 var placePosition new kakao.maps.LatLng( placesi.y, placesi.x ); //var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, mALL_CurrentSportsID ); var marker_img GetSports_Marker( mViewMode, mCurrentSportsMeta, param_curID ); //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - BEGIN //------------------------------------------------------------------------------------------------------------// var current_place_id placesi.id; if(typeof current_place_id undefined || current_place_id null || current_place_id ) { //console.log( `${i} undefined` ); } else { if (m_ContractPlaceEntry.indexOf(current_place_id) ! -1) { // #. 계약 경기장 //console.log( `계약경기장 ${new_img_path}`); if( marker_img.indexOf(.png) ! -1 ) { var new_img_path marker_img.slice( 0, marker_img.length-4) + _reser + marker_img.slice( marker_img.length-4, marker_img.length); marker_img new_img_path; bReser true; icon_width 32; //console.log( `new_img_path ${new_img_path}`); } } } //------------------------------------------------------------------------------------------------------------// // #. 경기장 표시 - 계약된 경기장인지 구분하여 이미지 변환 - END //------------------------------------------------------------------------------------------------------------// //var marker addMarker_search(placesi, placePosition, marker_img, mALL_CurrentSportsID, icon_width, icon_height, bReser); if( !bReser ) { // #. 가맹점이 아닌 경우에만 표시할 것 (가맹점은 별도로 표시됨) var marker addMarker_search(placesi, placePosition, marker_img, param_curID, icon_width, icon_height, bReser); } else { //console.log(계약 경기장); // var marker addMarker_search(placesi, placePosition, marker_img, param_curID, icon_width, icon_height, bReser); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정하기위해 // LatLngBounds 객체에 좌표를 추가합니다 //bounds.extend(placePosition); } // 검색된 장소 위치를 기준으로 지도 범위를 재설정합니다 //map.setBounds(bounds); } //------------------------------------------------------------------------// // #. 현재 지도상에 보여지는 좌표인지 검사 //------------------------------------------------------------------------// function IsShowInMap( in_y, in_x ) { var bMapInnder true; //--------------------------------------------------------------------// // #현재 보여지는 지도 영역정보 //--------------------------------------------------------------------// // bounds.pa : 위도 MAX // bounds.qa : 위도 MIN // bounds.oa : 경도 MAX // bounds.ha : 경도 MIN //--------------------------------------------------------------------// var bounds map.getBounds(); // #. 위도 / 경도 검사 if( in_y bounds.pa && in_y > bounds.qa && in_x bounds.oa && in_x > bounds.ha ) { //console.log( `안쪽 (${in_y}, ${in_x} ) > bounds.pa ${bounds.pa}, bounds.qa ${bounds.qa}, bounds.oa ${bounds.oa}, bounds.ha ${bounds.ha},` ); bMapInnder true; } else { //console.log( `바깥쪽 (${in_y}, ${in_x} ) > bounds.pa ${bounds.pa}, bounds.qa ${bounds.qa}, bounds.oa ${bounds.oa}, bounds.ha ${bounds.ha},` ); bMapInnder false; } return bMapInnder; } //------------------------------------------------------------------------// // 배열에 추가된 마커들을 지도에 표시하거나 삭제하는 함수입니다 //------------------------------------------------------------------------// function setMarkers(map) { //console.log(` setMarkers ${markers.length}`); for (var i 0; i markers.length; i++) { markersi.setMap(map); } } //----------------------------------------------------------------------------// // #. 현재 표시된 마커 삭제 //----------------------------------------------------------------------------// function DeleteAllMarkers() { //console.log( markers ); for (var i 0; i markers.length; i++) { markersi.setMap(null); } markers.length 0; return; } //------------------------------------------------------------------------// // #. 스프츠 별로 검색 키워드 문자열 반환 //------------------------------------------------------------------------// function GetSportsKeyword( inSportsID ) { // #. var strSportsDefaultKeyword 당구장; if( inSportsID > 1000 ) { strRet 게임방; } else if( inSportsID 1 ) { // #. 모든 종목 - 정의된 값이 없으므로 디폴트로 설정 strRet strSportsDefaultKeyword; } else if( inSportsID 999 ) { // #. 기타 종목 - 정의된 값이 없으므로 디폴트로 설정 strRet strSportsDefaultKeyword; } else { // #. 결과값이 없으면 당구로 설정함 strRet strSportsDefaultKeyword; var oSportsMarkerinfoArr publicSportsInformation( inSportsID ); if( oSportsMarkerinfoArr ) { //console.log(`!!!!!!!!!!!!!!!!!!!!!`); //console.log(oSportsMarkerinfoArr); if( oSportsMarkerinfoArr.DF_SPORTS_KEYWORD && oSportsMarkerinfoArr.DF_SPORTS_KEYWORD.trim().length > 0 ) { strRet oSportsMarkerinfoArr.DF_SPORTS_KEYWORD.trim(); } console.log(`!!!!!!!!!!!! inSportsID ${inSportsID} KeyWord ${strRet} !!!!!!!!!`); } /* switch( inSportsID ) { //const HEALTH 501; // 헬스&PT //const PILATES 502; // 필라테스 //const ARCHERY 503; // 궁술 ( 활쏘기 ) //const TAEKWONDO 504; // 태권도 //const SPORTS_ETC 999; // 기타 ( 스포츠 ) //const ESPORTS_ETC 1999; // 기타 ( E-스포츠 ) case 1: strRet ALL; break; //const SPORTS 1; // 스포츠 case 3: strRet 볼링장; break; //const BOWLING 3; // 볼링 case 4: strRet 당구장; break; //const BILLIARD 4; // 당구 case 5: strRet 테니스장; break; //const TENNIS 5; // 테니스 case 2: strRet 배드민턴장; break; //const BADMINTON 2; // 배드민턴 case 6: strRet 축구장; break; //const FOOTBALL 6; // 축구 case 7: strRet 골프클럽; break; //const GOLF 7; // 골프 case 15: strRet 족구장; break; //const VOLLEYFOOTBALL 15; // 족구 case 8: strRet 풋살장; break; //const FUTSAL 8; // 풋살 case 9: strRet 탁구장; break; //const PINGPONG 9; // 탁구 case 10: strRet 농구장; break; //const BASKETBALL 10; // 농구 case 11: strRet 파크골프장; break; //const PARKGOLF 11; // 파크골프 case 12: strRet 권투장; break; //const BOXING 12; // 권투 case 14: strRet 배구장; break; //const VOLLEYBALL 14; // 배구 case 13: strRet 야구장; break; //const BASEBALL 13; // 야구 case 501: strRet 헬스; break; // 헬스&PT case 502: strRet 필라테스; break; // 필라테스 case 503: strRet 활쏘기; break; // 궁술 ( 활쏘기 ) case 504: strRet 태권도; break; // 태권도 case 999: strRet 당구; break; // 기타 default: strRet 당구; break; } */ } return strRet; } //------------------------------------------------------------------------// // #. 스포츠 별 마커 이미지 가져오기 // - iRoomMarkerType : 만든 방 마커인지 구분 ( 0: 만든방, 1:경기장 ) // - isportsMeta : 0 Sports, 1 E-Sports // - iSportsID : 각 스포츠 구분 //------------------------------------------------------------------------// function GetSports_Marker( iRoomMarkerType, isportsMeta, iSportsID, inNode null ) { var strRet ; var strFilename ; console.log( ` GetSports_Marker >> iRoomMarkerType${iRoomMarkerType}, isportsMeta${isportsMeta}, iSportsID${iSportsID}, inNode${inNode} ` ); if( iRoomMarkerType 0 ) { //----------------------------------------------------------------// // #. 만든 방 아이콘 경로 질의 //----------------------------------------------------------------// // Sports 경기 타입별로 만든방 아이콘 경로 질의 switch( iSportsID ) { case 1: strFilename ALL; break; case 3: strFilename sports_icon_bowling_mark.png; break; case 4: strFilename sports_icon_bil_mark.png; break; case 5: strFilename sports_icon_tennis_mark.png; break; case 2: strFilename sports_icon_bad_mark.png; break; case 6: strFilename sports_icon_soccer_mark.png; break; case 7: strFilename sports_icon_golf_mark.png; break; case 15: strFilename sports_icon_football_val_mark.png; break; case 8: strFilename sports_icon_futsal_mark.png; break; case 9: strFilename sports_icon_pingpong_mark.png; break; case 10: strFilename sports_icon_basketball_mark.png; break; case 11: strFilename sports_icon_parkgolf_mark.png; break; case 12: strFilename sports_icon_box_mark.png; break; case 14: strFilename sports_icon_volleyballs_mark.png; break; case 13: strFilename sports_icon_baseball_mark.png; break; case 501: strFilename sports_stadium_icon_health_mark.png; break; case 502: strFilename sports_stadium_icon_pilates_mark.png; break; case 503: strFilename sports_stadium_icon_archery_mark.png; break; case 504: strFilename sports_stadium_icon_taekwondo_mark.png; break; case 505: strFilename sports_icon_kickboxing_mark.png; break; case 506: strFilename sports_icon_yoga_mark.png; break; case 507: strFilename sports_icon_climbing_mark.png; break; case 508: strFilename sports_icon_marathon_mark.png; break; case 998: strFilename sports_icon_sports_athletic_mark.png; break; case 999: strFilename sports_stadium_icon_etc_mark.png; break; case 1000: strFilename ESPORTS-ALL; break; // E-스포츠 case 1001: strFilename e_sports_icon_league_of_mark.png; break; // 리그 오브 레전드 case 1002: strFilename e_sports_icon_battle_ground_mark.png;break; //e_sports_stadium_icon_battle_ground_mark; break; // 배틀 그라운드 case 1003: strFilename e_sports_icon_fifa_mark.png; break; // 피파 온라인 case 1004: strFilename e_sports_icon_overwatch_mark.png; break; // 오버워치 case 1005: strFilename e_sports_icon_sudden_att_mark.png; break; // 서든어택 case 1006: strFilename e_sports_icon_valo_mark.png; break; // 발로란트 case 1007: strFilename e_sports_icon_starcraft_mark.png; break; // 스타크래프트 case 1008: strFilename e_sports_icon_lostark_mark.png; break; // 로스트아크 case 1009: strFilename e_sports_icon_lineage_mark.png; break; // 리니지 case 1010: strFilename e_sports_icon_cyphers_mark.png; break; // 사이퍼즈 case 1011: strFilename e_sports_icon_dungeon_fighter_mark.png; break; // 던전 앤 파이터 case 1012: strFilename e_sports_icon_minecraft_mark.png; break; // 마인크래프트 case 1013: strFilename e_sports_icon_roblox_mark.png; break; // 로블록스 case 1014: strFilename e_sports_icon_maplestory_mark.png; break; // 메이플스토리 case 1999: strFilename e_sports_stadium_icon_etc_mark.png; break; // 메이플스토리 default: strFilename sports_stadium_icon_etc_mark.png; break; } if( iSportsID >1000 && isportsMeta 2) { if( inNode && inNode.iMatchOnline 1) { strFilename e_sports_icon_battle_net_mark.png; //strFilename e_sports_icon_pc_mark.png; } } strRet `/asset/n_asset_map_mark/${strFilename}`; } else { //----------------------------------------------------------------// // #. 경기장 아이콘 질의 //----------------------------------------------------------------// if( isportsMeta 2 ) { // ESports 이므로 PC방 아이콘으로 통일함 //strFilename e_sports_stadium_icon_pcroom_mark.png; // PC strFilename e_sports_icon_pc_mark.png; } else { // Sports 경기 타입별로 경기장 아이콘 경로 질의 switch( iSportsID ) { case 1: strFilename ALL; break; case 3: strFilename sports_icon_bowling_mark.png; break; case 4: strFilename sports_icon_bil_mark.png; break; case 5: strFilename sports_icon_tennis_mark.png; break; case 2: strFilename sports_icon_bad_mark.png; break; case 6: strFilename sports_icon_soccer_mark.png; break; case 7: strFilename sports_icon_golf_mark.png; break; case 15: strFilename sports_icon_football_val_mark.png; break; case 8: strFilename sports_icon_futsal_mark.png; break; case 9: strFilename sports_icon_pingpong_mark.png; break; case 10: strFilename sports_icon_basketball_mark.png; break; case 11: strFilename sports_icon_parkgolf_mark.png; break; case 12: strFilename sports_icon_box_mark.png; break; case 14: strFilename sports_icon_volleyballs_mark.png; break; case 13: strFilename sports_icon_baseball_mark.png; break; case 501: strFilename sports_icon_health_mark.png; break; case 502: strFilename sports_icon_pilates_mark.png; break; case 503: strFilename sports_icon_archery_mark.png; break; case 504: strFilename sports_icon_taekwondo_mark.png; break; case 505: strFilename sports_icon_kickboxing_mark.png; break; case 506: strFilename sports_icon_yoga_mark.png; break; case 507: strFilename sports_icon_climbing_mark.png; break; case 508: strFilename sports_icon_marathon_mark.png; break; case 998: strFilename sports_icon_sports_athletic_mark.png; break; case 999: strFilename sports_icon_etc_mark.png; break; default: strFilename sports_icon_etc_mark.png; break; } } //strRet `/asset/n_asset_map_mark/map_mark_stadium/${strFilename}`; strRet `/asset/n_asset_map_mark/${strFilename}`; } //console.log(` GetSports_Marker >> iSportsID ${iSportsID} , Ret ${strRet}`); return strRet; } /* function GetSports_Marker( iRoomMarkerType, isportsMeta, iSportsID, inNode null ) { var strRet ; var strFilename ; console.log( ` GetSports_Marker >> iRoomMarkerType${iRoomMarkerType}, isportsMeta${isportsMeta}, iSportsID${iSportsID}, inNode${inNode} ` ); if( iRoomMarkerType 0 ) { //----------------------------------------------------------------// // #. 만든 방 아이콘 경로 질의 //----------------------------------------------------------------// // Sports 경기 타입별로 만든방 아이콘 경로 질의 switch( iSportsID ) { case 1: strFilename ALL; break; case 3: strFilename sports_icon_bowling_mark.png; break; case 4: strFilename sports_icon_bil_mark.png; break; case 5: strFilename sports_icon_tennis_mark.png; break; case 2: strFilename sports_icon_bad_mark.png; break; case 6: strFilename sports_icon_soccer_mark.png; break; case 7: strFilename sports_icon_golf_mark.png; break; case 15: strFilename sports_icon_football_val_mark.png; break; case 8: strFilename sports_icon_futsal_mark.png; break; case 9: strFilename sports_icon_pingpong_mark.png; break; case 10: strFilename sports_icon_basketball_mark.png; break; case 11: strFilename sports_icon_parkgolf_mark.png; break; case 12: strFilename sports_icon_box_mark.png; break; case 14: strFilename sports_icon_volleyballs_mark.png; break; case 13: strFilename sports_icon_baseball_mark.png; break; case 501: strFilename sports_stadium_icon_health_mark.png; break; case 502: strFilename sports_stadium_icon_pilates_mark.png; break; case 503: strFilename sports_stadium_icon_archery_mark.png; break; case 504: strFilename sports_stadium_icon_taekwondo_mark.png; break; case 999: strFilename sports_stadium_icon_etc_mark.png; break; case 1000: strFilename ESPORTS-ALL; break; // E-스포츠 case 1001: strFilename e_sports_icon_league_of_mark.png; break; // 리그 오브 레전드 case 1002: strFilename e_sports_icon_battle_ground_mark.png;break; //e_sports_stadium_icon_battle_ground_mark; break; // 배틀 그라운드 case 1003: strFilename e_sports_icon_fifa_mark.png; break; // 피파 온라인 case 1004: strFilename e_sports_icon_overwatch_mark.png; break; // 오버워치 case 1005: strFilename e_sports_icon_sudden_att_mark.png; break; // 서든어택 case 1006: strFilename e_sports_icon_valo_mark.png; break; // 발로란트 case 1007: strFilename e_sports_icon_starcraft_mark.png; break; // 스타크래프트 case 1008: strFilename e_sports_icon_lostark_mark.png; break; // 로스트아크 case 1009: strFilename e_sports_icon_lineage_mark.png; break; // 리니지 case 1010: strFilename e_sports_icon_cyphers_mark.png; break; // 사이퍼즈 case 1011: strFilename e_sports_icon_dungeon_fighter_mark.png; break; // 던전 앤 파이터 case 1012: strFilename e_sports_icon_minecraft_mark.png; break; // 마인크래프트 case 1013: strFilename e_sports_icon_roblox_mark.png; break; // 로블록스 case 1014: strFilename e_sports_icon_maplestory_mark.png; break; // 메이플스토리 case 1999: strFilename e_sports_stadium_icon_etc_mark.png; break; // 메이플스토리 default: strFilename sports_stadium_icon_etc_mark.png; break; } if( iSportsID >1000 && isportsMeta 2) { if( inNode && inNode.iMatchOnline 1) { strFilename e_sports_icon_battle_net_mark.png; } } strRet `/asset/n_asset_map_mark/${strFilename}`; } else { //----------------------------------------------------------------// // #. 경기장 아이콘 질의 //----------------------------------------------------------------// if( isportsMeta 2 ) { // ESports 이므로 PC방 아이콘으로 통일함 strFilename e_sports_stadium_icon_pcroom_mark.png; // PC } else { // Sports 경기 타입별로 경기장 아이콘 경로 질의 switch( iSportsID ) { case 1: strFilename ALL; break; case 3: strFilename sports_stadium_icon_bowling_mark.png; break; case 4: strFilename sports_stadium_icon_bill_mark.png; break; case 5: strFilename sports_stadium_icon_tennis_mark.png; break; case 2: strFilename sports_stadium_icon_bad_mark.png; break; case 6: strFilename sports_stadium_icon_soccer_mark.png; break; case 7: strFilename sports_stadium_icon_golf_mark.png; break; case 15: strFilename sports_stadium_icon_football_val_mark.png; break; case 8: strFilename sports_stadium_icon_futsal_mark.png; break; case 9: strFilename sports_stadium_icon_pingpong_mark.png; break; case 10: strFilename sports_stadium_icon_basketball_mark.png; break; case 11: strFilename sports_stadium_icon_parkgolf_mark.png; break; case 12: strFilename sports_stadium_icon_box_mark.png; break; case 14: strFilename sports_stadium_icon_volleyballs_mark.png; break; case 13: strFilename sports_stadium_icon_baseball_mark.png; break; case 501: strFilename sports_stadium_icon_health_mark.png; break; case 502: strFilename sports_stadium_icon_pilates_mark.png; break; case 503: strFilename sports_stadium_icon_archery_mark.png; break; case 504: strFilename sports_stadium_icon_taekwondo_mark.png; break; case 999: strFilename sports_stadium_icon_etc_mark.png; break; default: strFilename sports_stadium_icon_etc_mark.png; break; } } //strRet `/asset/n_asset_map_mark/map_mark_stadium/${strFilename}`; strRet `/asset/n_asset_map_mark/${strFilename}`; } //console.log(` GetSports_Marker >> iSportsID ${iSportsID} , Ret ${strRet}`); return strRet; } */ //------------------------------------------------------------------------// // #. 좌표로 법정동 상세 주소 정보를 요청합니다 //------------------------------------------------------------------------// function searchDetailAddrFromCoords(coords, callback) { geocoder.coord2Address(coords.getLng(), coords.getLat(), callback); } //------------------------------------------------------------------------// // #. 지도 센터 설정 //------------------------------------------------------------------------// function SetMapCenter( inLAT, inLNG ) { map.setCenter(new kakao.maps.LatLng(inLAT, inLNG)); } //------------------------------------------------------------------------// // #. 임의 위치에 마커 생성 //------------------------------------------------------------------------// function SetClickMarker( inLAT, inLNG ) { RemoveClickMarker( ); // 마커가 표시될 위치입니다 var markerPosition new kakao.maps.LatLng(inLAT, inLNG); // 마커를 생성합니다 ClickMarker new kakao.maps.Marker({ position: markerPosition }); // 마커가 지도 위에 표시되도록 설정합니다 ClickMarker.setMap(map); } //------------------------------------------------------------------------// // #. 임의 위치에 생성된 마커 제거 //------------------------------------------------------------------------// function RemoveClickMarker( ) { if( ClickMarker ) { ClickMarker.setMap(null); } return; } function InitBattleNetDefaultPlace() { var keyword 행정복지; // alert(InitBattleNetDefaultPlace); var searchOption { location: map.getCenter(), //radius: 1000, //bounds : size: 15, sort: kakao.maps.services.SortBy.DISTANCE }; console.log( InitBattleNetDefaultPlace ); ps.keywordSearch( keyword, BattleNetDefault_Callback, searchOption); } //----------------------------------------------------------------------------// // #. 배틀넷 장소 검색 완료CallBack //----------------------------------------------------------------------------// function BattleNetDefault_Callback(data, status, pagination) { if (status kakao.maps.services.Status.OK) { // 정상적으로 검색이 완료됐으면 if( data.length > 0 ) { Interface_Battle_LAT data0.y; Interface_Battle_LNG data0.x; console.log( `${Interface_Battle_LAT} , ${Interface_Battle_LNG}` ); } else { //console.log( 근처에 배틀넷 없음 ); } } else if (status kakao.maps.services.Status.ZERO_RESULT) { //alert(검색 결과가 존재하지 않습니다.); //console.log( 검색 결과가 존재하지 않습니다. ); return; } else if (status kakao.maps.services.Status.ERROR) { //alert(검색 결과 중 오류가 발생했습니다.); //console.log( 검색 결과 중 오류가 발생했습니다. ); return; } } //----------------------------------------------------------------------------// // #. 구/군 지역명 보정 //----------------------------------------------------------------------------// function GetDepth2_value( in_regionname ) { var token in_regionname.split( ); //console.log( `in_regionname ${in_regionname}, length ${token.length}` ); if( token.length > 0 ) { return token0.trim(); } return in_regionname.trim(); } //----------------------------------------------------------------------------// // #. 주소에서 Depth 추출 //----------------------------------------------------------------------------// function GetDepthFromAddress(in_addr, out_arr_Depth) { var token in_addr.split( ); if( token.length > 2 ) { out_arr_DepthDEPTH_1 token0.trim(); out_arr_DepthDEPTH_2 token1.trim(); out_arr_DepthDEPTH_3 token2.trim(); } return; } //------------------------------------------------------------------------// // #. MAP 크기 변경등의 이벤트 발생시 1초 지연후 갱신 //------------------------------------------------------------------------// function MapDelayedRefresh() { setTimeout(function() { map.relayout(); }, 500); setTimeout(function() { map.relayout(); RefreshMarkers(); }, 1500); } //------------------------------------------------------------------------// // #. MAP 드래그 차단 //------------------------------------------------------------------------// function SetMapLock( bOpen ) { if( bOpen ) { //console.log(맵 풀기 ); map.setDraggable(true); map.setZoomable(true); } else { //console.log(맵 잠금 ); map.setDraggable(false); map.setZoomable(false); } }//--------------------------------------------------------------------------------------------------------------------////// #. Footer 예약하기 버튼 클릭////--------------------------------------------------------------------------------------------------------------------//function OnBtnClickReserOnFooter(){ //------------------------------------------------------------------------// // #. 종목을 먼저 선택했는가? //------------------------------------------------------------------------// if( mCurrentSportsID 1 ) { alert(종목을 먼저 선택해 주세요.); return; } iFlagReserveInCase 1; // #. 가맹점 목록 var oResult JSON.parse( m_json_contract_ret.aData ); // #. 현재 내 위치 var CurrentMyLocation new kakao.maps.LatLng(dGlobalGpsLatitude, dGlobalGpsLongitude); var CurrentMyLocation_LAT CurrentMyLocation.Ma; var CurrentMyLocation_LNG CurrentMyLocation.La; //console.log( `mCurrentSportsID${mCurrentSportsID}` ); //------------------------------------------------------------------------// // #. Marekr를 순환하면서 가장 가까운 경기장 찾기 // - 가맹점 찾기 //------------------------------------------------------------------------// var CurrnetNode_GPS null; var TargetMarker null; var MiniumDistance DF_MAX_DISTNCE_KM; for( i0; imarkers.length; i++) { CurrnetNode_GPS markersi.getPosition(); var img_path markersi.T.mk; //console.log( img_path ); var DistanceKM distance( CurrentMyLocation_LAT, CurrentMyLocation_LNG, CurrnetNode_GPS.Ma, CurrnetNode_GPS.La ); //console.log( `Distance ${DistanceKM} ( ${CurrentMyLocation_LAT}, ${CurrentMyLocation_LNG} ) , ( ${CurrnetNode_GPS.Ma} , ${CurrnetNode_GPS.La} ) ` ); //var bContractPlace IsContractPlace_Exact( CurrnetNode_GPS.Ma, CurrnetNode_GPS.La, ); var bContractPlace false; if( img_path.indexOf(reser) > 0 || img_path.indexOf(leag) > 0 ) { bContractPlace true; } if( bContractPlace ) { //console.log( ` OnBtnClickReserOnFooter 계약된 가맹점임 ${CurrnetNode_GPS.Ma}, ${CurrnetNode_GPS.La}`); // #. 지정된 범위안에서만 가맹점 찾기 if( DF_MAX_DISTNCE_KM > DistanceKM ) { //console.log( ` OnBtnClickReserOnFooter 계약된 가맹점임 ${DF_MAX_DISTNCE_KM} > ${DistanceKM} `); // #. 예약가능한 가맹점 if( DistanceKM MiniumDistance ) { MiniumDistance DistanceKM; TargetMarker markersi; } } //continue; } else { //console.log( ` OnBtnClickReserOnFooter 계약된 가맹점 아님 ${CurrnetNode_GPS.ma}, ${CurrnetNode_GPS.la}`); } } if( TargetMarker ) { //------------------------------------------------------------------------------------------------------------// // #. 근처에 예약 가능한 경기장이 있는 경우 // 1. 지도를 경기장으로 이동시킨다. // 2. 화면의 스크롤을 조절한다. // 3. 예약하기 창을 표시한다. //------------------------------------------------------------------------------------------------------------// //--------------------------------------------------------------------// // 1. 지도를 경기장으로 이동시킨다. //--------------------------------------------------------------------// // 이동할 위도 경도 위치를 생성합니다 var TargetGPS TargetMarker.getPosition(); var moveLatLon new kakao.maps.LatLng(CurrnetNode_GPS.Ma, CurrnetNode_GPS.La); map.panTo(moveLatLon); MapDelayedRefresh(); //--------------------------------------------------------------------// // 2. 화면의 스크롤을 조절한다. //--------------------------------------------------------------------// var MoveToScrollTop ($(#map_overlay).offset().top) - 200; //console.log( `map top ${$(#map_overlay).offset().top}` ); $( html, body ).stop().animate( { scrollTop : MoveToScrollTop } ); //--------------------------------------------------------------------// // 3. 예약하기 창을 표시한다. //--------------------------------------------------------------------// kakao.maps.event.trigger(TargetMarker, click, null); } else { alert(주변에 예약 가능한 경기장이 없습니다.); } return;}//----------------------------------------------------------------------------//// #. GPS 두 좌표 사이의 거리 구하기//----------------------------------------------------------------------------//function distance(lat1, lon1, lat2, lon2) { const R 6371; // 지구 반지름 (단위: km) const dLat deg2rad(lat2 - lat1); const dLon deg2rad(lon2 - lon1); const 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); const c 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); const distance R * c; // 두 지점 간의 거리 (단위: km) return distance;}function deg2rad(deg) { return deg * (Math.PI/180);}//----------------------------------------------------------------------------//// #. 지도 위 내 위치 표시//----------------------------------------------------------------------------///*// #. PIN 으로 표시function ShowMyLocation(){ var moveLatLon new kakao.maps.LatLng(dGlobalGpsLatitude, dGlobalGpsLongitude); // 마커를 생성합니다 MyLocationMarker new kakao.maps.Marker({ position: moveLatLon }); // 마커가 지도 위에 표시되도록 설정합니다 MyLocationMarker.setMap(map); return;}*/var MyLocationmarker null;// #. 내 위치 이미지로 표시function ShowMyLocation(){ var moveLatLon new kakao.maps.LatLng(dGlobalGpsLatitude, dGlobalGpsLongitude); var strImgPath /asset/n_asset_map_mark/map_me_mark.png; var imageSrc strImgPath; var imageSize new kakao.maps.Size(30, 30); // 마커이미지의 크기입니다 var imageOption {offset: new kakao.maps.Point(0, 0)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다. // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다 var markerImage new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption); if( MyLocationmarker ) { // #. 기존 마커 삭제 MyLocationmarker.setMap(null); } // 마커를 생성합니다 MyLocationmarker new kakao.maps.Marker({ position: moveLatLon, image: markerImage, // 마커이미지 설정 zIndex: 9999 }); MyLocationmarker.setMap(map); return;}// #. GPS좌표를 주소(지번)로 변환function ConvertGPStoAddress(latitude, longitude, callback) { var coords new kakao.maps.LatLng(latitude, longitude); var geocoder new kakao.maps.services.Geocoder(); geocoder.coord2Address(coords.getLng(), coords.getLat(), function(result, status) { if (status kakao.maps.services.Status.OK) { //console.log( result ); var address result0.address.address_name; callback(null, address); } else { callback(status, null); } }); /* // #. 호출 예 var latitude 37.5665; // 예시 위도 var longitude 126.9780; // 예시 경도 // 함수 호출 ConvertGPStoAddress(latitude, longitude, function(error, address) { if (error) { console.error(주소 변환 실패: + error); } else { console.log(주소: + address); // 여기에서 주소를 사용하거나 다른 처리를 할 수 있습니다. } }); */}//----------------------------------------------------------------------------// // #. GPS좌표를 주소(지번)로 변환 (도로명주소, DEPTH1, DEPTH2 포함) //----------------------------------------------------------------------------// function ConvertGPStoAddress_with_depth(latitude, longitude, callback) { var coords new kakao.maps.LatLng(latitude, longitude); var geocoder new kakao.maps.services.Geocoder(); geocoder.coord2Address(coords.getLng(), coords.getLat(), function(result, status) { if (status kakao.maps.services.Status.OK) { console.log(result); var address result0.address.address_name; var road_address result0.road_address.address_name; var depth1 result0.address.region_1depth_name; var depth2 result0.address.region_2depth_name; callback(null, address, road_address, depth1, depth2); } else { callback(status, null); } }); /* // #. 호출 예 var latitude 37.5665; // 예시 위도 var longitude 126.9780; // 예시 경도 // 함수 호출 ConvertGPStoAddress_with_depth(latitude, longitude, function(error, address, road_address, depth1, depth2) { if (error) { console.error(주소 변환 실패: + error); } else { console.log(`주소: ${address} , ${road_address}, ${depth1} , ${depth2} `); // 여기에서 주소를 사용하거나 다른 처리를 할 수 있습니다. } }); */ }//----------------------------------------------------------------------------//// #. 날짜 구하기//----------------------------------------------------------------------------//function GetDatefunc( inDateObj, in_type ){ return inDateObj.getFullYear() + - + String( (inDateObj.getMonth()+1)).padStart(2, 0) + - + String(inDateObj.getDate()).padStart(2, 0);}//----------------------------------------------------------------------------//// #. 구청/ 군청의 GPS 얻기//----------------------------------------------------------------------------//function GetOfficeGPS( inSearchOffice ){ //alert(inSearchOffice); inSearchOffice.substring( 0, 2 ); if ( inSearchOffice.substring( 0, 2 ) 세종 ) { // inSearchOffice 세종시; keyword_Office `${inSearchOffice} 주민센터`; } else{ keyword_Office `${inSearchOffice}청`; } //keyword_Office `${inSearchOffice}청`; var searchOption_Office { location: map.getCenter(), //radius: 1000, //bounds : map.getBounds(), size: 15, sort: kakao.maps.services.SortBy.ACCURACY }; // console.log(`keyword_Office ${keyword_Office}>`); ps.keywordSearch( keyword_Office, placesSearchCB_Office, searchOption_Office); // console.log // ( // ` // ------------------------------------ // Param : ${inSearchOffice} // ------------------------------------ // ` ); return ;} //----------------------------------------------------------------------------// // #장소검색이 완료됐을 때 호출되는 콜백함수 입니다 //----------------------------------------------------------------------------// function placesSearchCB_Office(data, status, pagination) { // console.log(`placesSearchCB_Office>`); if (status kakao.maps.services.Status.OK) { // 정상적으로 검색이 완료됐으면 // 검색 목록과 마커를 표출합니다 //displayPlaces(data); // console.log(data); dAreaLatitude data0.y; dAreaLongitude data0.x; // console.log( `placesSearchCB_Office dAreaLatitude ${dAreaLatitude}, dAreaLongitude ${dAreaLongitude}` ); // 페이지 번호를 표출합니다 //displayPagination(pagination); } else if (status kakao.maps.services.Status.ZERO_RESULT) { //alert(검색 결과가 존재하지 않습니다.); console.log( placesSearchCB_Office 검색 결과가 존재하지 않습니다. ); return; } else if (status kakao.maps.services.Status.ERROR) { //alert(검색 결과 중 오류가 발생했습니다.); console.log( placesSearchCB_Office검색 결과 중 오류가 발생했습니다. ); return; } }//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////--------------------------------------------------------------------------------------------------------------------//// #. MAP 클래스 - 종료//--------------------------------------------------------------------------------------------------------------------///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////script>script srchttps://t1.kakaocdn.net/kakao_js_sdk/2.7.0/kakao.min.js integritysha384-l+xbElFSnPZ2rOaPrU//2FF5B4LB8FiX5q4fXYTlfcG4PGpMkE1vcL7kNXI6Cci0 crossoriginanonymous>/script>script>//----------------------------------------------------------------------------//// #. Kakao 공유링크 보내기 창 팝업//----------------------------------------------------------------------------//class KakaoAPI{ constructor() { if( !Kakao.isInitialized() ) { Kakao.init( 193c37b2d1980a2978f61e4dfd88c249 ); } } // // #. 카카오 로그인 @Less // Login() { Kakao.Auth.authorize ({ redirectUri: https://sporting.place/oauth/kakao, state: Sporting }); } ShowKakaoFriendMessageSend ( strTitle, strDesc, strImgSrc, strButtonTtile, strCallbackURL ) { var Result; // #. 카카오 키 입력 //--------------------------------------------------------------------------// // #. 카카오 공유링크 팝업 표시 //--------------------------------------------------------------------------// Result Kakao.Link.sendDefault({ objectType: feed, content: { title: strTitle, description: strDesc, imageUrl: strImgSrc, link: { mobileWebUrl: strCallbackURL, webUrl: strCallbackURL, }, }, buttons: { title: strButtonTtile, link: { mobileWebUrl: strCallbackURL, webUrl: strCallbackURL, }, }, , }); /* Kakao.Link.sendDefault({ objectType: feed, content: { title: 스포팅 동호회에서 홍길동님으로부터 친구초대가 왔어요!, description: #스포츠 #매칭 #대회 #스포츠친구찾기, imageUrl: https://sporting.place/source/sp/sporting_hp/img/header-logo.png, link: { mobileWebUrl: https://sandbox.sporting.place/source/sp/api_esports/kakao_test.html?ppptesttest, webUrl: https://sandbox.sporting.place/source/sp/api_esports/kakao_test.html?ppptesttest, }, }, buttons: { title: 앱으로 보기, link: { mobileWebUrl: https://sandbox.sporting.place/source/sp/api_esports/kakao_test.html?ppptesttest, webUrl: https://sandbox.sporting.place/source/sp/api_esports/kakao_test.html?ppptesttest, }, }, , }); */ } //--------------------------------------------------------------------------// // #. 카카오 공유하기 @Less //--------------------------------------------------------------------------// KakaoContentsShare ( sShareTitle, sShareDescription, sShareImagePath, sShareLocationPath ) { return Kakao.Share.sendDefault ({ objectType : feed, content : { title : sShareTitle, description : sShareDescription, imageUrl : sShareImagePath, link : { webUrl : sShareLocationPath, mobileWebUrl : sShareLocationPath, }, }, buttons: { title : 스포팅 앱 열기, link : { webUrl : sShareLocationPath, mobileWebUrl : sShareLocationPath, }, }, , }); } //----------------------------------------------------------------------------// // #. 앱 실행하기 //----------------------------------------------------------------------------// ExecuteApp ( SendParam, AgentOs 1 ) { if ( AgentOs 2 ) { window.location.replace( `sportingscmios://?${SendParam}` ); setTimeout( function(){ window.location.replace( `https://itunes.apple.com/app/id6446752537` ); }, 2000 ); } else { location.href `intent://sporting?${SendParam}#Intent;schemesporting_sch;packagecom.noriverse.sporting;end`; } } }/script>script typetext/javascript>/////////////////////////////////////////////////////////////////////////////////*** 활동 추적 클라이언트 스크립트**** @file js_tracker.inc** @description** - 클라이언트 측 사용자 활동 추적** - HTML 요소의 data-track 속성을 통한 자동 추적** - 수동 추적 메서드 제공**** @example** HTML: button data-trackmatch:create data-track-id123>매치 만들기/button>** JS: activityTracker.trackFeatureUsage(match, create, matchId);*/////////////////////////////////////////////////////////////////////////////////// PHP 세션의 LOG_ID를 JavaScript 변수로 할당const PHP_SESSION_LOG_ID 0;var sGlobalMetaPageTitle 스포팅 홈페이지;var sGlobalMetaPageCategory PUBLIC;var sGlobalMetaPageUrl /index.html;var sGlobalMetaPageTargetCode 0;/** * 사용자 활동 추적을 위한 클래스 * 페이지 조회, 체류시간, 사용자 상호작용 등을 추적 */class UserTracker { /** * UserTracker 클래스 생성자 * 초기 설정 및 이벤트 리스너 등록 */ constructor() { this.iLogId PHP_SESSION_LOG_ID; this.iPageLogId 0; this.iPageLoadTime new Date(); this.bActive true; } /** * 추적 시스템 초기화 */ initializeTracking() { // 세션 추적 이벤트 설정 this.setTrackingEvent(); this.setPageTracking(); } setTrackingEvent() { // Event - 페이지 추적 // // 페이지 숨김/표시 (브라우저 탭 전환, 앱 전환) document.addEventListener( visibilitychange, () > { if ( document.visibilityState hidden ) { this.bActive false; this.setSessionUpdate(); } else { this.bActive true; this.iPageLoadTime new Date(); } }); // iOS Safari 지원 window.addEventListener( pagehide, () > { this.bActive false; this.setSessionUpdate(); }); // 페이지 표시 시 시작 시간 초기화 window.addEventListener( pageshow, () > { this.bActive true; this.iPageLoadTime new Date(); }); // 주기적 업데이트 (30초마다) setInterval(() > { if ( this.bActive && this.iLogId ) { this.setSessionUpdate(); this.iPageLoadTime new Date(); // 업데이트 후 시작 시간 초기화 } }, 30000 ); // Event - 활동 추적 // // data-activity 속성을 가진 요소의 클릭 이벤트 추적 $( document ).on( click, data-activity, ( oEvent ) > { const oElement $( oEvent.currentTarget ); const oActivityData JSON.stringify ( { sPageUrl: sGlobalMetaPageUrl, iPageLogId: this.iPageLogId, sActivityType: Click, sActivityTitle: oElement.data( activity-title ) || , sActivityCategory: oElement.data( activity-category ) || , sActivityDetail: oElement.data( activity-detail ) || , sActivityTargetCode: oElement.data( activity-target-code ) || } ); this.setActivityTracking( oActivityData ); }); } setPageTracking() { const oTrackData { type: PageView, data: JSON.stringify ({ iLogId: this.iLogId, sMetaPageTitle : sGlobalMetaPageTitle, sMetaPageCategory : sGlobalMetaPageCategory, sMetaPageUrl : sGlobalMetaPageUrl, sMetaPageTargetCode : sGlobalMetaPageTargetCode }) }; var aResponse this.sendRequest( oTrackData, false ); this.iPageLogId aResponse aData iPageLogId ; } setActivityTracking( oActivityData ) { const oTrackData { type: Activity, data: oActivityData }; this.sendRequest( oTrackData ); } setSessionUpdate() { if ( !this.iLogId ) return; const iTimeSpent Math.floor(( new Date() - this.iPageLoadTime ) / 1000 ); if ( iTimeSpent 1 ) return; // 기존 데이터 형식에 맞춰 전송 const oTrackData { type: PageExit, data: JSON.stringify ({ iLogId: this.iLogId, iPageLogId: this.iPageLogId, iTimeSpent: iTimeSpent }) }; this.sendRequest( oTrackData ); } /** * 서버로 추적 데이터 전송 * @param {string} sType - 요청 타입 (activity, PageView, PageExit) * @param {Object} oData - 전송할 데이터 * @returns {Promise} Ajax 요청 Promise */ sendRequest( oTrackData, bBeacon true) { if ( navigator.sendBeacon && bBeacon ) { const oFormData new FormData(); oFormData.append( type, oTrackData.type ); oFormData.append( data, oTrackData.data ); navigator.sendBeacon( /endpoint/endpoint_tracker.php, oFormData ); } else { var aReturn; $.ajax ({ url: /endpoint/endpoint_tracker.php, type: POST, dataType: JSON, data: oTrackData, async: false, success: function( aResponse ){ aReturn aResponse; } }); return aReturn; } }}/** * DOM 로드 완료 시 UserTracker 인스턴스 생성 */$( document ).ready(() > { window.oUserTracker new UserTracker(); window.oUserTracker.initializeTracking();});/script>script typetext/javascript>const URL_ENDPOINT_USER /endpoint/endpoint_user.php;const URL_ENDPOINT_AUTH /endpoint/endpoint_auth.php;const URL_ENDPOINT_MATCH /endpoint/endpoint_match.php;const URL_ENDPOINT_CHAT /endpoint/endpoint_chat.php;const URL_ENDPOINT_BOARD /endpoint/endpoint_board.php;const URL_ENDPOINT_ALARM /endpoint/endpoint_alarm.php;const URL_ENDPOINT_TOURNAMENT /endpoint/endpoint_tournament.php;const URL_ENDPOINT_PUBLIC /endpoint/endpoint_public.php;const URL_ENDPOINT_MANAGER /endpoint/endpoint_manager.php;const URL_ENDPOINT_PLACE /endpoint/endpoint_place.php;const URL_ENDPOINT_LEAGUE /endpoint/endpoint_league.php;const URL_ENDPOINT_CLUB /endpoint/endpoint_club.php;const URL_ENDPOINT_API_ESPORTS /endpoint/endpoint_api_esports.php;const URL_MATCH_CREATE /source/sp/sub/billiard/bill_making_page.html;var iGlobalGpsActive 0; // 유저의 현재 GPS 활성 여부 ( DB )var dGlobalGpsLatitude 0; // 유저의 현재 GPS 좌표 위도 ( DB )var dGlobalGpsLongitude 0; // 유저의 현재 GPS 좌표 경도 ( DB )var sGlobalGpsAddress ; // 유저의 현재 GPS 좌표 주소 ( DB )var iGlobalMetaSports 1; // 페이지 스포츠 종목 ( Define )var iGlobalMetaSportsType 1; // 페이지 스포츠 유형 ( 0: Sports, 1: E-Sports )var iGlobalUserFirstAccess 1; // 유저 최초 접속 플래그var iGlobalUserCode 0; // 유저 고유코드var iGlobalUserLevel 0; // 유저 레벨var iGlobalFlagUserProfilePlz 0; // 플래그 - 유저 프로필 입력 요구var iGlobalFlagUserConnectAccountPlz 0; // 플래그 - 유저 계정연동 요구var iGlobalFlagManagerPlaceProfilePlz 0; // 플래그 - 매니저 시설 프로필 입력 요구var dGpsLatitude 0.0; // 지정 좌표 위도var dGpsLongitude 0.0; // 지정 좌표 경도var sGpsLocation ; // 지정 좌표 값의 장소명var sGpsLocationId ; // 지정 좌표 값의 장소 ID ( Kakao Map ID )var sGpsAddress ; // 지정 좌표 값의 상세주소var sGpsAddressCity ; // 지정 좌표의 주소 - 도시 ( 부산 등 )var sGpsAddressArea ; // 지정 좌표의 주소 - 구군 ( 서구, 중구 등 )var sGpsAddressAreaSub ; // 지정 좌표의 주소 - 동( 서동, 사직동, 등 )var iFlagReserveInCase 0; // 지정 좌표의 주소 - 동( 서동, 사직동, 등 )var dAreaLatitude 0.0; // 지정 좌표 위도 ( 주소를 통해 좌표 검색 ( 동 기준 ) )var dAreaLongitude 0.0; // 지정 좌표 경도 ( 주소를 통해 좌표 검색 ( 동 기준 ) )var bScrollDid false;var iScrollTopLast 0;var iScrollDelta 0;var iGlobalMetaHeaderNavSectionType 1;var iGlobalFlagMainEventDisable 0;$( body ).append( `div classpc_side_item_in_html> !-- ╒◖═════════════════════════════════════◗╕ PC화면 사이드메뉴 추가 시작 ╘◖═════════════════════════════════════◗╛ --> !-- 배경 --> div classpc_bg_img> img src/asset/n_asset/pc_bg.png> /div> div classpc_side_wrap> !-- | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| PC화면 왼쪽에 배치 |______________| \ (•◡•) / --> div classpc_left_wrap > !-- QR보기 --> div classbtn_qr_view > !-- 보기버튼 --> img classqr_view_btn glow_ef src/asset/n_asset/pc_install_img.png?ver1> !-- qr들 --> img classqr_wrap_btn src/asset/n_asset/pc_install_img_qr.png?ver1> /div> !-- 대회 참가하기 버튼 --> div classbtn_left glow_ef skew onclicklocation.href/source/sp/n_banner_home.html> img classripple src/asset/n_asset/pc_attend_go.png> /div> div classleague_wrap> !-- 대회 만들기 버튼 --> div classbtn_left glow_ef0 skew CallLeagueCreate> img classripple src/asset/n_asset/pc_make_go.png> /div> !-- 대회 방법보기 버튼 --> div classbtn_left glow_ef0 skew how_to_make onclicklocation.hrefn_how_to_make_league.html> img classripple src/asset/n_asset/pc_make_how_to_go.png?ver1> /div> !-- 기록증 버튼 --> div classbtn_left glow_ef0 skew how_to_print onclicklocation.hrefn_export_home.html> img classripple src/asset/n_asset/pc_print_go.png> /div> /div> /div> !-- | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| PC화면 왼쪽에 배치 |______________| \ (•◡•) / --> div classpc_right_wrap> div classpos_box_wrap> p classpos_text>| 대회 개최 소식/p> div classbanner_slide_wrap> !-- | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| 대회 포스터 슬라이드 |______________| \ (•◡•) / --> div classetc_league styledisplay:block;> div classposter_badge> p classend_text>종료된 대회/p> /div> div classpos_img ripple linkLocation data-location-url/source/sp/n_record_form.html?ids511> img src/asset/n_league_banner_asset/pc_side_poster_muzu.png> /div> a classgo_to ripple s_theme_bg linkLocation data-location-url/source/sp/n_record_form.html?ids511> 기록증 발급 /a> /div> div classetc_league styledisplay:block;> div classposter_badge> p classend_text>종료된 대회/p> /div> div classpos_img ripple linkLocation data-location-url/source/sp/league/?ilc900000067> img src/asset/n_league_banner_asset/pc_side_poster_ymca.png> /div> a classgo_to ripple s_theme_bg linkLocation data-location-url/source/sp/league/?ilc900000067> 상세보기 /a> /div> div classetc_league styledisplay:block;> div classposter_badge> p classend_text>종료된 대회/p> /div> div classpos_img ripple linkLocation data-location-url/source/sp/n_ranking_inner.html?iLeagueCode900000021> img src/asset/ctrl_sc_asset/pc_side_poster_ctrl.png> /div> a classgo_to ripple s_theme_bg linkLocation data-location-url/source/sp/n_ranking_inner.html?iLeagueCode900000021> 상세보기 /a> /div> /div> /div> /div> /div> !-- ╒◖═════════════════════════════════════◗╕ PC화면 사이드메뉴 추가 끝 ╘◖═════════════════════════════════════◗╛ -->/div>` );$( document ).ready( function(){ publicGpsAddress( dGlobalGpsLatitude, dGlobalGpsLongitude, sGlobalGpsAddress ); $( document ).on( click, .header_bars, function( oEvent ){ publicAsideShow(); }); $( document ).on( click, .header_x, .mo_bk_wrap, function( oEvent ){ publicAsideHide(); }); $( document ).on( click, .bk_common_bg, .sheet_close_btn, function( oEvent ){ $( this ).closest( .sheet_wrap ).hide(); publicNavFilterHide(); }); $( document ).on( click, .header_center, function( oEvent ){ publicNavSportsShow(); }); $( document ).on( click, .button_sports_toggle, function( oEvent ){ publicNavSportsListToggle( $( this ) ); }); $( document ).on( click, .sports_select, function( oEvent ){ publicUserSportsChange( $( this ) ); }); $( document ).on( click, .sports_disable, function( oEvent ){ alert( 준비 중 입니다 ); return; }); $( document ).on( click, .linkLocation, function( oEvent ){ publicLinkLocation( $( this ) ) }); $( document ).on( click, .linkBack, function( oEvent ){ publicLinkBack(); }); $( document ).on( click, .divTutorial, function( oEvent ){ publicTutorialClose( $( this ).attr( data-tutorial-case ) ); }); $( document ).on( click, .KakaoShareFriend, function( oEvent ){ publicKakaoShareFriend(); }); $( document ).on( click, .KakaoShareFriendLeague, function( oEvent ){ publicKakaoShareFriendLeague( $( this ).attr( data-league-logo ) ); }); $( document ).on( click, .buttonKakaoLogin, function( oEvent ){ publicKakaoLogin(); }); $( document ).on( click, .CallLeagueCreate, function( oEvent ){ location.href ( ( 0 > 0 ) ? /source/sp/n_pc_to_go.html : /source/manager_league ); }); $( document ).on( click, .ConnectRiot, function( oEvent ){ ConnectRiot(); });});window.onpageshow function( event ){ publicUserAlarm(); publicUserNews(); getPublicChatListNews(); // setInterval( `publicScrollConfirm()`, 250 ); setInterval( `getPublicCheckRefresh()`, 5000 ); setInterval( `publicGpsAddress( dGlobalGpsLatitude, dGlobalGpsLongitude, sGlobalGpsAddress )`, 5000 ); setInterval( `publicUserAlarm()`, 5000 ); setInterval( `publicUserNews()`, 5000 ); }$( window ).on( load, function(){ // if ( iGlobalUserFirstAccess > 0 && iGlobalFlagMainEventDisable 1 ) // { // // publicUserFirstAccessConfirm(); // if ( iGlobalMetaSports > 0 ) // { // publicNavProfilePlzShow(); // } // else // { // // publicNavSportsShow(); // // publicNavProfilePlzEvnetChain(); // } // } //////////////////////////////////////////////////////////////////// // // 슬릭슬라이드 0227 // //////////////////////////////////////////////////////////////////// //메인이미지 슬라이드 MO $( function(){ if ( $( .banner_slide_wrap ) ) { $(.banner_slide_wrap).slick({ dots: true, infinite: true, speed: 200, slidesToShow: 1, slidesToScroll: 1, autoplay: true }); } }); // 슬라이드 길이 수정 - pc 사이드 $( function(){ var bannerSlideWrap $(.banner_slide_wrap ); if (bannerSlideWrap.hasClass(slick-initialized)) { $(.banner_slide_wrap > div).show(); } else { $(.banner_slide_wrap > div).hide(); } }); // //슬라이드 길이 수정 - 가게상세 // $( function(){ // var bannerSlideWrap2 $(.place_pic_slide_wrap ); // if (bannerSlideWrap2.hasClass(slick-initialized)) { // $(.place_pic_slide_wrap > div).show(); // } else { // $(.place_pic_slide_wrap > div).hide(); // } // }); // //슬라이드 길이 수정 // $( function(){ // var bannerSlideWrap3 $(.place_league_slide_wrap ); // if (bannerSlideWrap3.hasClass(slick-initialized)) { // $(.place_league_slide_wrap > div).show(); // } else { // $(.place_league_slide_wrap > div).hide(); // } // }); //qr보이게 함 $(document).ready(function () { $(.qr_view_btn).on(mouseover, function () { $(this).css(opacity, 0); $(.qr_wrap_btn).fadeIn(250); }); $(.qr_wrap_btn).on(mouseout, function () { $(.qr_wrap_btn).fadeOut(250); $(.qr_view_btn).css(opacity, 1); $(.qr_view_btn).fadeIn(200); }); });});$( window ).on( scroll, function( oEvent ){ bScrollDid true; });$( window ).on( beforeunload, function( oEvent ){ var oForm new FormData(); oForm.append( iEndpointCase, 32240 ); navigator.sendBeacon( URL_ENDPOINT_PUBLIC, oForm ); });function publicUserLoginRequire(){ var iUserCode 0; if ( iUserCode 1 ) { setCookie( sRedirectUrl, / ); location.href /source/sp/login.html; return false; } else { return true; } }function publicUserFirstAccessConfirm(){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10101 } });}function publicUserSportsChange( oThis ){ var iDfSports ( $( oThis ).attr( data-define-sports ) * 1 ); var iDfSportsType ( $( oThis ).attr( data-define-sports-type ) * 1 ); $( .sports_kind_btn ).removeClass( sports_selected s_theme_bg e_theme_bg ).find( img ).show(); if ( iDfSportsType 1 ) { $( oThis ).addClass( sports_selected s_theme_bg ).find( img ).hide(); } else { $( oThis ).addClass( sports_selected e_theme_bg ).find( img ).hide(); } $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10201, iMetaSports : iDfSports }, success : function( aResponse ) { location.replace( `/source/sp/n_index.html` ); } });}function publicUserAlarm(){ $( .header_new_dots_alert ).hide(); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10002 }, success : function( aResponse ) { let iQuery ( aResponse.iQuery * 1 ); let iNewAlarm ( aResponse.aData.iNewAlarm * 1 ); if ( ( iQuery > 0 ) && ( iNewAlarm > 0 ) ){ publicAlarmDotsShow( iNewAlarm ); } } });}function publicUserNews(){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10001 }, success : function( aResponse ) { let iQuery ( aResponse.iQuery * 1 ); let aData aResponse.aData; let iNewMatching ( aData.iNewMatching * 1 ); let aNewChatRoom aData.aNewChatRoom; if ( iNewMatching > 0 ) { publicAlarmDotsMatching(); } if ( aNewChatRoom.length > 0 ) { publicAlarmDotsMatching(); aNewChatRoom.forEach( iChatRoom > { publicAlarmDotsChatRoom( iChatRoom ); }); } } });}function publicSportsInformation( iDfSports ){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10200, iDfSports : iDfSports }, success : function( aResponse ) { let iQuery ( aResponse.iQuery * 1 ); let aData aResponse.aData; aReturn aData; } }); return aReturn;}function publicPlaceContractRequest( sPlaceId, iPlaceSports, sPlaceName, sPlaceAddress, dPlaceLat, dPlaceLng ){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10901, sPlaceId : sPlaceId, iPlaceSports : iPlaceSports, sPlaceName : sPlaceName, sPlaceAddress : sPlaceAddress, dPlaceLat : dPlaceLat, dPlaceLng : dPlaceLng } });}function publicAsideShow(){ if ( !publicUserLoginRequire() ){ return; } // $( .a_side ).css({ left : 0 }); $(.a_side).show(); $( .header_bars ).hide(); $( .header_x ).show(); $( .mo_bk_wrap ).fadeIn( 50 ); $( html ).css( overflow, hidden );}function publicAsideHide(){ // $( .a_side ).css({ left : -100% }); $(.a_side).hide(); $( .header_bars ).show(); $( .header_x ).hide(); $( .mo_bk_wrap ).fadeOut(); $( html ).css( overflow, auto );}function publicNavSportsShow(){ if ( iGlobalMetaHeaderNavSectionType 1 ) { $( .sheet_wrap.top_sports_sel_sheet ).show(); $( .sports_kind_wrap_inner ).animate( { top: 0 }, 200 ); }}function publicNavSportsListToggle( oThis ){ var iDfSportsType ( $( oThis ).attr( data-define-sports-type ) * 1 ); var htmlSelectSection ( $( oThis ).parent().siblings( .select_line ) ); if ( iDfSportsType 1 ) { $( oThis ).addClass( s_theme_bg ).siblings( .button_sports_toggle ).removeClass( e_theme_bg ); htmlSelectSection.children( .df_esports ).hide(); htmlSelectSection.children( .df_sports ).show(); } else { $( oThis ).addClass( e_theme_bg ).siblings( .button_sports_toggle ).removeClass( s_theme_bg ); htmlSelectSection.children( .df_sports ).hide(); htmlSelectSection.children( .df_esports ).show(); }}// // function publicScrollConfirm()// {// if ( bScrollDid )// {// publicNavToggleScroll();// bScrollDid false;// }// }// 0522 스크롤 하단 네비 토글 고정시킴// function publicNavToggleScroll()// {// var iScrollTop $( this ).scrollTop(); // if ( Math.abs( iScrollTopLast - iScrollTop ) iScrollDelta ){ return; }// if ( iScrollTop > iScrollTopLast && iScrollTop > $( nav ).outerHeight() ){ $( nav ).addClass( scroll_nav_down ); }// else if ( iScrollTop + $( window ).height() $( document ).height() ) { $( nav ).removeClass( scroll_nav_down ); }// iScrollTopLast iScrollTop;// }function publicNavProfilePlzShow(){ $( .sheet_wrap.profile_plz_sheet ).show(); $( .profile_plz_sheet > .bottom_sheet_wrap_inner ).animate( { bottom : 0 }, 200 ); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10102 }, success : function( aResponse ){ iGlobalFlagUserProfilePlz 0; } });}function publicNavPlaceProfilePlzShow(){ $( .sheet_wrap.placeinfo_edit ).show(); $( .placeinfo_edit > .bottom_sheet_wrap_inner ).animate( { bottom : 0 }, 200 ); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10103 }, success : function( aResponse ){ iGlobalFlagManagerPlaceProfilePlz 0; } });}function publicNavConnectAccountPlzShow(){ $( .sheet_wrap.g_connect_plz_sheet ).show(); $( .g_connect_plz_sheet > .bottom_sheet_wrap_inner ).animate( { bottom : 0 }, 200 ); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10104 }, success : function( aResponse ){ iGlobalFlagUserConnectAccountPlz 0; } });}function publicNavGpsAddress( sGpsAddress ){ $( #buttonHeaderGpsAddress ).text( sGpsAddress ); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_USER, data : { iEndpointCase : 11021, sGpsAddress : sGpsAddress } });}function publicTutorialView( iTutorialCase ){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10301, iTutorialCase : iTutorialCase }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sTutorialText TutorialConfig( iTutorialCase ); if ( iQuery > 0 ) { $( .spanTutorialText ).text( sTutorialText ); $( .divTutorial ).attr( data-tutorial-case, iTutorialCase ).show(); } } });}function publicTutorialClose( iTutorialCase ){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10302, iTutorialCase : iTutorialCase }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); if ( iQuery > 0 ) { $( .divTutorial ).hide(); } } });}function publicClubInformation( iClubCode ){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_CLUB, data : { iEndpointCase : 101008, iClubCode : iClubCode }, success : function( aResponse ) { aReturn aResponse; } }); return aReturn;}function publicStringEncrypt( sString ){ var sReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10501, sString : sString }, success : function( aResponse ) { var iQuery aResponse.iQuery; var sReason aResponse.sReason; var aData aResponse.aData; sReturn aData.sStringEncrypt; } }); return sReturn;}function publicCookieSet( sKey, sValue ){ var sReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 32239, sKey : sKey, sValue : sValue } }); return sReturn;}function publicCookieGet( sKey ){ var sReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 32238, sKey : sKey }, success : function( aResponse ) { var iQuery aResponse.iQuery; var sReason aResponse.sReason; var aData aResponse.aData; sReturn aData; } }); return sReturn;}function publicCookieDel( sKey ){ var sReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 32237, sKey : sKey } }); return sReturn;}function publicNavProfilePlzEvnetChain(){ $( document ).one( click, .sports_kind_wrap_close_btn, .top_sports_sel_sheet .bk_common_bg, function( oEvent ){ publicNavProfilePlzShow(); });}function publicNavFilterHide(){ $( .bottom_sheet_wrap_inner ).css( bottom, -100% ); $( .sports_kind_wrap_inner ).css( top, -100% );}function publicAlarmDotsShow( iNewAlarm ){ $( .header_new_dots_alert ).show(); $( .alert_more ).css( display, none ); $( .alert_num ).css( display, none ); $( .alert_num ).text( iNewAlarm ); if ( iNewAlarm > 9 ) { $( .alert_more ).css( display, block ); } else { $ (.alert_num ).css( display, block ); }}function publicLinkLocation( oThis ){ var sLocationUrl $( oThis ).attr( data-location-url ); var iLocationType ( $( oThis ).attr( data-location-type ) * 1 ); if ( false ) // if ( iGlobalMetaSports 1 && !( $( oThis ).hasClass( ExceptionCase1 ) ) ) { publicNavSportsShow(); } else { if ( iLocationType > 0 ){ location.replace( sLocationUrl ); } else { location.href sLocationUrl; } }}function publicLinkBack(){ if ( history.length > 1 ) { history.back(); } else { location.href /source/sp/n_index.html; } console.log( history );}function publicGpsAddress( iGpsLatitude, iGpsLongitude, sGpsAddress ){ ConvertGPStoAddress( iGpsLatitude, iGpsLongitude, function( oError, sGpsAddress ) { publicNavGpsAddress( sGpsAddress ); });}function publicAlarmDotsMatching(){ $( .menu4 > .new_dots ).show();}function publicAlarmDotsChatRoom( iChatRoom ){ $( `.ChatRoom${iChatRoom} > .list_line_dots` ).show();}function publicConvertAddressSimple( sAddress ){ var aAddress sAddress.split( ); if( aAddress.length > 2 ){ sAddress ( `${aAddress 1 .trim()} ${aAddress 2 .trim()}` ); } return sAddress;}function publicMapPlaceRequest( sPlaceName, sPlaceAddress ){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81201, sPlaceName : sPlaceName, sPlaceAddress : sPlaceAddress } });}function publicMapPlaceRequestCount( sPlaceName, sPlaceAddress ){ var iRequestCount 0; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81202, sPlaceName : sPlaceName, sPlaceAddress : sPlaceAddress }, success : function( aResponse ) { if ( ( aResponse.iQuery > 0 ) ) { iRequestCount aResponse.aData; } } }); return iRequestCount;}function publicKakaoLogin(){ var oKakao new KakaoAPI(); $( .loading ).show(); setTimeout( function(){ oKakao.Login(); $( .loading ).hide(); }, 100 );}function publicKakaoShareFriend(){ sShareImageMain https://sporting.place + /asset/n_asset_share/공유카카오톡sns이미지.png; var aLinkData { iUserCode : 0 }; var jLinkData JSON.stringify( aLinkData ); var sLinkData publicStringEncrypt( jLinkData ) var oKakao new KakaoAPI(); var sShareTitle `\n친구로부터 초대가 왔어요!`; // var sShareDescription 앱 미설치 시 설치 후, 다시 이 링크를 터치해서 초대를 받을 수 있어요!; var sShareDescription 앱 최초 설치 시, 한번 더 이 링크를 터치해야 초대가 수락됩니다; var sShareImagePath sShareImageMain; var sShareLocationPath `https://sporting.place/?${sLinkData}`; oKakao.KakaoContentsShare ( sShareTitle, sShareDescription, sShareImagePath, sShareLocationPath );}function publicKakaoShareFriendLeague( sShareImage ){ sShareImageMain https://sporting.place + ( sShareImage.length > 0 ? sShareImage : /asset/n_asset_share/공유카카오톡sns이미지.png ); var aLinkData { iUserCode : 0 }; var jLinkData JSON.stringify( aLinkData ); var sLinkData publicStringEncrypt( jLinkData ) var oKakao new KakaoAPI(); var sShareTitle `\n친구로부터 초대가 왔어요!`; // var sShareDescription 앱 미설치 시 설치 후, 다시 이 링크를 터치해서 초대를 받을 수 있어요!; var sShareDescription 앱 최초 설치 시, 한번 더 이 링크를 터치해야 초대가 수락됩니다; var sShareImagePath sShareImageMain; var sShareLocationPath `https://sporting.place/?${sLinkData}`; oKakao.KakaoContentsShare ( sShareTitle, sShareDescription, sShareImagePath, sShareLocationPath );}function publicKakaoShareClub( iClubCode ){ var aClub publicClubInformation( iClubCode ); var iQuery aClub.iQuery; var sReason aClub.sReason; var aData aClub.aData; var aClub aData; var iClubStatus ( aData.CLUB_STATUS * 1 ); var sClubName aData.CLUB_NAME; var sClubIntro aData.CLUB_INTRO; var sClubPlaceCity aData.CLUB_PLACE_CITY; var sClubPlaceArea aData.CLUB_PLACE_AREA; var sClubImageMain aData.CLUB_IMAGE_MAIN; sClubImageMain https://sporting.place + /asset/n_asset_share/공유카카오톡sns이미지.png; // sClubImageMain https://sporting.place + ( sClubImageMain ? `/upload/club/main/${sClubImageMain}` : /asset/n_asset/club_place_default.png ); var aLinkData { iClubCode : iClubCode }; var jLinkData JSON.stringify( aLinkData ); var sLinkData publicStringEncrypt( jLinkData ) var oKakao new KakaoAPI(); var sShareTitle `${sClubName}\n락커룸에서 초대가 왔어요!`; var sShareDescription 스포팅에서 함께 스포츠를 즐겨볼까요?; var sShareImagePath sClubImageMain; var sShareLocationPath `https://sporting.place/?${sLinkData}`; oKakao.KakaoContentsShare ( sShareTitle, sShareDescription, sShareImagePath, sShareLocationPath );}function publicAccessDevice(){ return ( /iphone|ipad|ipod|android/i.test( navigator.userAgent.toLowerCase() ) );}function publicAccessDeviceOs(){ var sUserAgent navigator.userAgent.toLowerCase(); if ( sUserAgent.indexOf( iphone ) > -1||sUserAgent.indexOf( ipad ) > -1||sUserAgent.indexOf( ipod ) > -1 ) { return 2; } else if ( sUserAgent.indexOf( android ) > -1) { return 1; } else { return 0; }}function setCookie( sKey, sValue ){ publicCookieSet( sKey, sValue ); // document.cookie `${sKey}${sValue}`;}function getCookie( sKey ){ var sValue publicCookieGet( sKey ); return sValue; // var sCookieKey; // var sCookieValue; // var aCookie document.cookie.split( ; ); // for ( let iIndex 0; iIndex aCookie.length; iIndex++ ) // { // sCookieKey aCookie iIndex .substr( 0, aCookie iIndex .indexOf( ) ); // sCookieValue aCookie iIndex .substr( ( aCookie iIndex .indexOf( ) + 1 ) ); // sCookieKey sCookieKey.replace( /^\s+|\s+$/g, ); // if ( sKey sCookieKey){ return unescape( sCookieValue ); } // }}function DelCookie( sKey ){ publicCookieDel( sKey ); // document.cookie `${sKey}; max-age0`;}function getPlaceUseInformation( iPlaceCode){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81101, iPlaceCode : iPlaceCode }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sReason aResponse.sReason; var aData aResponse.aData; if ( iQuery > 0 ) { aReturn aData; } } }); return aReturn;}function getPlaceProductCodeByPlaceId( iPlaceId){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_MANAGER, data : { iEndpointCase : 73011, iPlaceId : iPlaceId }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sReason aResponse.sReason; var aData aResponse.aData; if ( iQuery > 0 ) { aReturn aData; } } }); return aReturn;}function getContractPlaceListAround( dGpsLatitude, dGpsLongitude, iSports 0){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81005, dGpsLatitude : dGpsLatitude, dGpsLongitude : dGpsLongitude, iSports : iSports }, success : function( aResponse ) { aReturn aResponse; } }); return aReturn;}function getPlaceListAround( dGpsLatitude, dGpsLongitude, iSports 0){ var aReturn; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81003, dGpsLatitude : dGpsLatitude, dGpsLongitude : dGpsLongitude, iSports : iSports }, success : function( aResponse ) { aReturn aResponse; } }); return aReturn;}function getPlaceItemSubList( iPlaceCode){ $( #divPlaceItemSub ).hide(); $( #selectPlaceItemSub ).empty(); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PLACE, data : { iEndpointCase : 81014, iPlaceCode : iPlaceCode }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sReason aResponse.sReason; var aData aResponse.aData; if ( iQuery > 0 && aData.length > 0 ) { // Success for ( var iIndex 0; iIndex aData.length; iIndex++ ) { var aPlaceItemSub aData iIndex ; var iPlaceItemSubIndex aPlaceItemSub.IDX; var sPlaceItemSubName aPlaceItemSub.DF_SPORTS_PLACE_SUB_NAME; var iPlaceItemSubCount aPlaceItemSub.SPORTS_PLACE_SUB_COUNT; $( #selectPlaceItemSub ).append ( ` option value${iPlaceItemSubIndex}> ${sPlaceItemSubName} (${iPlaceItemSubCount}개 보유) /option> ` ); $( #divPlaceItemSub ).show(); } } } }); return;}function getPublicChatListNews(){ $( .chatlist_dots_alert ).hide(); $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_CHAT, data : { iEndpointCase : 32001 }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var iDataCount ( aResponse.aData.length ); if ( iQuery > 0 && iDataCount > 0 ) { for ( var iIndex 0; iIndex aResponse.aData.length; iIndex++ ) { let iNewChatRoomCode aResponse.aData iIndex .iNewChatRoomCode; $( `#divDotsNewChatRoom${iNewChatRoomCode}` ).show(); } } } });}function getPublicUserNews(){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10001 }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); if ( iQuery > 0 ) { let iNewAlarm ( aResponse.aData.iNewAlarm * 1 ); let iNewChat ( aResponse.aData.iNewChat * 1 ); // if ( iNewAlarm > 0 ) // { // location.reload(); // } ( iNewAlarm > 0 ? $( #divDotsNewAlarm ).show() : $( #divDotsNewAlarm ).hide() ); ( iNewChat > 0 ? $( #divDotsNewChat ).show() : $( #divDotsNewChat ).hide() ); } } });}function getPublicCheckRefresh(){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_PUBLIC, data : { iEndpointCase : 10000 }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var sReason aResponse.sReason; var aData aResponse.aData; if ( iQuery > 0 ) { let iRefresh ( aData.iRefresh * 1 ); if ( iRefresh > 0 ) { location.reload(); } } } });}function setGpsSelect( sGpsSelectAddress, sGpsSelectLocation, dGpsSelectLatitude, dGpsSelectLongitude, sGpsSelectAddressCity , sGpsSelectAddressArea , sGpsSelectAddressAreaSub ){ dGpsLatitude dGpsSelectLatitude; dGpsLongitude dGpsSelectLongitude; sGpsLocation sGpsSelectLocation; sGpsAddress sGpsSelectAddress; sGpsAddressCity sGpsSelectAddressCity; sGpsAddressArea sGpsSelectAddressArea; sGpsAddressAreaSub sGpsSelectAddressAreaSub; $( #inputMatchAddress, #inputTourAddress ).val( sGpsSelectAddress ).trigger( change ); $( #inputMatchLocation, #inputTourLocation ).val( sGpsSelectLocation ).trigger( change ); $( #inputMatchLat ).val( dGpsSelectLatitude ).trigger( change ); $( #inputMatchLon ).val( dGpsSelectLongitude ).trigger( change ); return;}function getGpsBetweenMatchList( dGpsLatitudeMin, dGpsLongitudeMin, dGpsLatitudeMax, dGpsLongitudeMax, iMetaSportsType 0){ var jResponse ; var iEndpointCase 21111; $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_MATCH, data : { iEndpointCase : iEndpointCase, dGpsLatitudeMin : dGpsLatitudeMin, dGpsLongitudeMin : dGpsLongitudeMin, dGpsLatitudeMax : dGpsLatitudeMax, dGpsLongitudeMax : dGpsLongitudeMax, iMetaSportsType : iMetaSportsType }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); var aData aResponse.aData; if ( iQuery > 0 ) { jResponse aData; console.log( aData ); } } }); return jResponse;}function setBoardView( iBoardCode){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_BOARD, data : { iEndpointCase : 42101, iBoardCode : iBoardCode } }); return;}function setBoardBan( iBoardCode){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_BOARD, data : { iEndpointCase : 42102, iBoardCode : iBoardCode } }); return;}function setBoardDelete( iBoardCode){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_BOARD, data : { iEndpointCase : 41003, iBoardCode : iBoardCode }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); if ( iQuery > 0 ) { location.replace( /source/sp/community.html ); } else { alert( 오류가 발생했습니다\n잠시 후 다시 시도해주세요 ); } } }); return;}function setBoardReplyBan( iReplyIndex){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_BOARD, data : { iEndpointCase : 42103, iReplyIndex : iReplyIndex } }); return;}function setBoardReplyDelete( iReplyIndex){ $.ajax ({ type : POST, dataType: JSON, async : false, url : URL_ENDPOINT_BOARD, data : { iEndpointCase : 41103, iReplyIndex : iReplyIndex }, success : function( aResponse ) { var iQuery ( aResponse.iQuery * 1 ); if ( iQuery > 0 ) { location.reload(); } else { alert( 오류가 발생했습니다\n잠시 후 다시 시도해주세요 ); } } }); return;}function ConnectRiot(){ setCookie( sRedirectUrl, / ); var sApiEndpoint https://auth.riotgames.com/authorize; var sClientId 72409418-b13c-4eae-8486-458ccb88323b; location.href `${sApiEndpoint}?client_id${sClientId}&response_typecode&scopeopenid&redirect_urihttps://sporting.place/endpoint/endpointRiotRso.php`; return;}function TutorialConfig( iTutorialCase){ sTutorialText ; switch ( iTutorialCase ) { case 10: sTutorialText 신청취소 후 경기신청을 누르면 알림이 다시 보내져요; break; case 11: sTutorialText 신청을 수락하면 채팅방에서 대화 할 수 있어요; break; case 12: sTutorialText 종목 홈으로 가려면 위의 종목을 선택해주세요; break; case 31: sTutorialText 선수정보를 입력한 종목은 프로필에 주 종목으로 표기 돼요; break; case 41: sTutorialText 서로 하트를 보내면 친구로 등록됩니다.; break; case 64: sTutorialText 팀원 선택 후 팀을 만들면, 상대에게 초대메세지가 가요; break; case 101: sTutorialText 동호회원을 추방하거나 초대하면 알림이 가요; break; } return sTutorialText;}/script>/body>/html>script>var oKakao new KakaoAPI();var iEncryptDataFlag 0;var sExtra ;$( document ).ready( function( oEvent ){ if ( iEncryptDataFlag > 0 ) { var bAccessDevice publicAccessDevice(); var iAccessDeviceOs publicAccessDeviceOs(); if ( bAccessDevice ) { oKakao.ExecuteApp( `kakaolink${sExtra}`, iAccessDeviceOs ); } }});/script>
Subdomains
Date
Domain
IP
bowlers.sporting.place
2025-12-11
3.35.146.56
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]