- 놀이시설 수83,758
- 놀이기구 수420,977
- 우수시설 수34
';
addrFindBtn += '
';
addrFindBtn += '
';
var curtBtn = '
'; //현재위치 이동시 필요한 이미지
$(document).ready(function(){
setKeyword();
getCurrentLocation(); //페이지 로드 후 지도 호출
$('input[name=onlWatView]').on('change', function() {
fnSetMap()
fnMapDataLoad(true);
});
});
function fnKeywordInit(){
if($("#searchKeyword").val() != ''){
$("#searchKeyword").val('');
fnSearchSubmit('');
}
}
//지도 호출
function fnSetMap(){
var lat = 0;
var lng = 0;
var zoom = 0;
if(map == undefined){
lat = defaultLat;
lng = defaultLng;
zoom = defaultZoom;
}else{
lat = map.getCenter()._lat;
lng = map.getCenter()._lng;
zoom = map.getZoom();
}
if(map != undefined) map.destroy();
map = new naver.maps.Map('map', {
center: new naver.maps.LatLng(lat, lng),
zoom: zoom,
/*
zoomControl : true,
zoomControlOptions : { // 줌 컨트롤 옵션
position : naver.maps.Position.TOP_RIGHT // 오른쪽 위로 위치 설정
},
*/
maxZoom: defaultZoom+5,
minZoom: defaultZoom-5
});
//드래그 이벤트
naver.maps.Event.addListener(map,'dragend',function(){
var isCenter = false;
var isFirstShow = ($("#searchKeyword").val() == '' ? true : false);
//getCurrentLocation();
fnSetMap();
fnMapDataLoad(isCenter, isFirstShow);
});
}
//현재위치 가져오기
function getCurrentLocation(){
//Geolocation HTML5 API 를 통해 얻은 현재 위치 좌표로 지도를 이동합니다.
$("#searchKeyword").val('');
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(onSuccessGeolocation, onErrorGeolocation);
}else{
console.log("Geolocation Not supported Required");
}
}
//getCurrentPosition 성공 콜백 함수
var onSuccessGeolocation = function(position){
fnSetMap();
map.setCenter(new naver.maps.LatLng(position.coords.latitude,position.coords.longitude));
map.setZoom(defaultZoom);
fnMapDataLoad(true);
}
//getCurrentPosition 에러 콜백 함수
var onErrorGeolocation = function(){
/*
var agent = navigator.userAgent.toLowerCase(). name = navigator.appName;
if(name == 'Microsoft Internet Explorer' || agent.indexOf('trident') > -1 || agent.indexOf('edge/') > -1 ){
alert("지원하지 않는 브라우져입니다.");
}else{
console.log("현재위치를 가져오는데 에러가 발생하였습니다.");
}*/
fnSetMap();
map.setCenter(new naver.maps.LatLng(defaultLat,defaultLng));
map.setZoom(defaultZoom);
fnMapDataLoad();
}
//지도에 표시할 데이터 가져오기
function fnGetMapData(){
var fixWowaStylRideCd = "";
if($("#onlWatView").prop("checked") == true){
fixWowaStylRideCd = "X001" ;
}
var mapDataArr = new Array(); // 위도경도를 담는 배열
$.ajax({
type:'post',
url:ComFns.getContextUrl()+'user/exts/cpf/com/getPfctData.do',
data:{latitude:map.getCenter()._lat,longitude:map.getCenter()._lng,distance:'1000',searchKeyword:$("#searchKeyword").val() ,searchCondition:'1',wowaStylRideCd : fixWowaStylRideCd, mapWowaStylRideCd : $("#waterParam").val(),exfcValidYn : $("#exfcParam").val()},
success:function(data){
//if(data.length >= maxDataCount) alert('놀이시설은 최대 50개까지만 조회됩니다. ');
var obj = null;
$(data).each(function(fnIdx, fnObj){
obj = {};
obj.pfctSn = fnObj.pfctSn;
obj.pfctNm = fnObj.pfctNm;
obj.operYnCdNm = fnObj.operYnCdNm;
obj.instlPlaceCdNm = fnObj.instlPlaceCdNm;
obj.prvtPblcYnCdNm = fnObj.prvtPblcYnCdNm;
obj.wowaStylRideCd = fnObj.wowaStylRideCd;
obj.mapWowaStylRideCd = fnObj.mapWowaStylRideCd;
obj.exfcYn = fnObj.exfcYn;
obj.exfcValidYn = fnObj.exfcValidYn;
//obj.idrodrCdNm = fnObj.idrodrCdNm;
//obj.intipRsltSeCdNm = fnObj.intipRsltSeCdNm;
obj.lat = fnObj.latCrtsVl;
obj.lng = fnObj.lotCrtsVl;
mapDataArr.push(obj);
});
},error:function(error){
},async:false
});
return mapDataArr;
}
//지도 중앙 위치로 주변 놀이시설 지도에 표시
function fnMapDataLoad(isCenter, isFirstShow){
if(isCenter == undefined || isCenter == null || isCenter == '') isCenter = false;
if(isFirstShow == undefined || isFirstShow == null || isFirstShow == '') isFirstShow = false;
$('#mapList').empty(); //ul 데이터 영역 초기화
markers = new Array(); //마커 초기화
infoWindows = new Array(); //info 초기화
var mapDataArr = fnGetMapData();
var mapList = '';
for(var i = 0; i
';
mapList += '';
mapList += '
';
//mapList += //'- '+prvtPblcYnCdNm+'
';
//mapList += //'- '+intipRsltSeCdNm+'
';
mapList += '- '+operYnCdNm+'
';
mapList += '- '+instlPlaceCdNm+'
';
if(wowaStylRideCd == 'X001') mapList += '- 물놀이
';
if(exfcYn == 'Y') mapList += '- 우수
';
mapList += '
';
mapList += '
';
mapList += '' + pfctNm + '';
mapList += '
';
mapList += '
';
mapList +='';
$('#mapList').empty().append(mapList);
var marker = new naver.maps.Marker({
position: new naver.maps.LatLng(lat, lng), //위도, 경도
map: map,
});
var contentHtml = '';
contentHtml += '';
if(exfcYn == 'Y')contentHtml += '
우수';
if(wowaStylRideCd == 'X001')contentHtml += '
물놀이';
if(exfcYn == 'Y' || wowaStylRideCd == 'X001')contentHtml += '
';
contentHtml += '
' + pfctNm + '';
contentHtml += ' ';
var infowindow = new naver.maps.InfoWindow({
content: contentHtml
});
markers.push(marker);
infoWindows.push(infowindow);
//24.02.05 : 사장님 요청 제거
//24.07.22 : hks 기능 복원
}
if(mapDataArr != null && mapDataArr.length > 0 && ( isCenter == true || isFirstShow == true )){
getClickHandler(0, isCenter, isFirstShow); //첫번째마커 info 표시
}
//마커 클릭 이벤트 바인딩
for (var i=0; i 0) infoWindow.open(map, marker); // 표출
//지도 center 설정 (li영역에서 클릭시에만)
if(isCenter == true){
var centerMap = new naver.maps.LatLng(marker.position._lat, marker.position._lng);
map.panTo(centerMap);
}
}
function fnSearchSubmit(searchValue){
if(searchValue == undefined){
var cookieName = 'userMainSearchKeywords';
setCookieMap(cookieName, $("#searchKeyword").val());
}else{
$("#searchKeyword").val(searchValue);
}
fnSetMap();
fnMapDataLoad(true);
setKeyword();
}
function setCookieMap(cookieName, value) {
if(value == null) document.cookie = cookieName + "=" + '' + "; path=/; expires=0;"
var cookieValue = unescape(getCookieMap(cookieName));
var isPass = true; //중복된 값이 있는지 체크
if(cookieValue != null){
if(cookieValue.split(',').length > 4) isPass = false; //최근 검색어 3개 까지만
$(cookieValue.split(',')).each(function(fnIdx, fnValue){
if(fnValue == unescape(value)) isPass = false;
});
}
//중복체크
if(isPass == true){
if(cookieValue != null) value = cookieValue+','+value;
var expiredays = new Date();
expiredays.setMonth(expiredays.getMonth() + 1); //쿠키 유효기한 1달로 설정
var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = cookieName + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
}
function getCookieMap(key) {
var result = null;
var cookie = document.cookie.split(';');
cookie.some(function (item) {
item = item.replace(' ', ''); // 공백을 제거
var dic = item.split('=');
if(key === dic[0]) {
result = dic[1];
return true; // break;
}
});
return unescape(result);
}
function removeCookieMap(value){
var cookieName = 'userMainSearchKeywords';
var cookieValue = unescape(getCookieMap(cookieName));
var resultValue = '';
if(cookieValue != null){
var cnt = 0;
$(cookieValue.split(',')).each(function(fnIdx, fnValue){
if(value != fnValue){
if(cnt == 0){
resultValue = fnValue;
}else{
resultValue += ','+fnValue;
}
cnt++;
}
});
var expiredays = new Date();
expiredays.setMonth(expiredays.getMonth() + 1); //쿠키 유효기한 1달로 설정
var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = cookieName + "=" + escape(resultValue) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
setKeyword();
}
function setKeyword(){
var searchUlObj = $("#lastKeyword");
var searchLiObj = searchUlObj.find('li');
var cookieName = 'userMainSearchKeywords';
var cookieValue = getCookieMap(cookieName);
var liHtml = '';
searchUlObj.empty();
if(cookieValue != null){
$(cookieValue.split(',')).each(function(fnIdx, fnValue){
if(fnValue != '' && fnValue != null && fnValue != 'null'){
liHtml += ''+unescape(fnValue)+'';
}
});
}
searchUlObj.append(liHtml);
}
//놀이시설 상세
function fnLoadPfctViewJson(pfctSn){
var searchDataObj = {};
ComFns.popup.init({title:'놀이시설 상세'});
//ComFns.popup.noneScroll(true); //scroll 팝업여부[기본:false|true:스크롤 없음|false:스크롤 있음]
ComFns.popup.loadContent('/user/exts/cpf/pfc/view.do;jsessionid=OOaW-RnzAlM3kbkE4eV_A-NTrBxRIbvk4yI0d5w4.cpf10', {pfctSn:pfctSn});
ComFns.popup.show();
}
function fnSetLatLng(data){
naver.maps.Service.geocode({ address: data.address }, function(status, response) {
if (status === naver.maps.Service.Status.ERROR) {
//return alert('에러');
}else{
var lotCrtsVl = response.result.items[0].point.x;
var latCrtsVl = response.result.items[0].point.y;
fnSetMap();
map.setCenter(new naver.maps.LatLng(latCrtsVl,lotCrtsVl));
map.setZoom(defaultZoom);
fnMapDataLoad();
}
});
}