🔍 토지 검색
💡 주소를 검색하면 지도에 위치가 표시되고 토지 정보를 확인할 수 있습니다. 공공 API(VWorld, 국토부) 연동으로 실제 데이터를 조회합니다.
📍 토지 정보
💴 토지 매입
⚡ 태양광 설치
📋 기타 비용
← 왼쪽에서 수치를 입력하면 실시간으로 사업비가 계산됩니다.
☀ 발전 수익 설정
🏦 대출 설정
← 왼쪽에서 설치 용량과 대출 정보를 입력하세요.
⚙ 패널 규격 설정
🏠 지붕 크기 설정
📊 배치 결과
총 패널 수
0
총 설치 용량
0
kW
면적 활용률
0
%
설치 면적
0
🌤 경사각 0°, 방위각 0° → 예상 발전량 보정계수: 1.00
🔲 패널 배치 시뮬레이션
🌤 음영 손실 분석
⚡ 한전 배전망 조회
⚠️ 한전 배전망 API는 승인제(1~3일)입니다. 키 발급 전까지는 주소 기반 시뮬레이션 데이터로 제공됩니다. 발급 후 우측 상단 ⚙ 설정에서 키를 입력하세요.
🗺 한전 배전선로 개요
주소를 검색하면 인근 배전선로 정보를 확인할 수 있습니다.
⚡ 전압별 특징
전압용량 범위접속 비용적합
22.9kV 고압100kW 이상높음대규모
380V 저압50~100kW보통중규모
220V 단상~50kW낮음소규모
📌 한전 접속 신청 절차
1
사전 검토 신청
한전 사이버지점 또는 고객센터(123) 통해 접속 사전 검토 신청
2
계통 접속 협의
접속 가능 용량, 연결점, 공사비 협의 (통상 2~4주 소요)
3
접속 계약 체결
접속 공사비 납부 및 계약 체결
4
공사 및 계통 연결
한전 공사 완료 후 계통 연결 및 발전 개시
🏢 건물주 DB 조회
국토교통부 건축물대장 정보서비스 실데이터 조회
← 왼쪽에서 주소를 입력하고 조회하세요.
📒 토지대장 조회
VWorld 토지임야정보 API - 지목·면적·소유자·공시지가 조회
주소 검색하면 자동 입력됩니다
📌 PNU 구조
PNU = 시도(2) + 시군구(3) + 읍면동(3) + 리(2) + 지목(1) + 본번(4) + 부번(4)
주소 검색하면 자동으로 계산됩니다
← 주소를 검색하거나 PNU를 입력하세요.
// ═══════════════════════════════════════════════ // 토지대장 - 주소로 PNU 계산 // ═══════════════════════════════════════════════ async function searchLandPNU() { const addr = document.getElementById('lb-addr').value.trim(); if(!addr) return; const kakaoUrl = `https://dapi.kakao.com/v2/local/search/address.json?query=${encodeURIComponent(addr)}`; const proxyBase = PROXY_URL.replace(/\/$/, ''); try { const res = await fetch(`${proxyBase}/proxy?url=${encodeURIComponent(kakaoUrl)}&kakao_key=${KAKAO_REST_KEY}`); const d = await res.json(); if(d.documents && d.documents.length > 0) { const doc = d.documents[0]; const a = doc.address; if(a) { // PNU 생성: 시도(2)+시군구(3)+읍면동(3)+리(2)+산여부(1)+본번(4)+부번(4) const bCode = a.b_code || ''; // 10자리 법정동코드 const mtnm = a.mountain_yn === 'Y' ? '1' : '0'; const mainNo = (a.main_address_no || '0').padStart(4, '0'); const subNo = (a.sub_address_no || '0').padStart(4, '0'); const pnu = bCode + mtnm + mainNo + subNo; document.getElementById('lb-pnu').value = pnu; document.getElementById('lb-addr').style.borderColor = 'var(--green)'; } } } catch(e) {} } // ═══════════════════════════════════════════════ // 토지대장 실데이터 조회 (VWorld 토지임야정보) // ═══════════════════════════════════════════════ async function searchLandBook() { const pnu = document.getElementById('lb-pnu').value.trim(); if(!pnu || pnu.length < 15) { alert('PNU를 입력하거나 주소를 검색하세요.'); return; } document.getElementById('lb-loading').style.display = 'flex'; document.getElementById('lb-result').style.display = 'none'; document.getElementById('lb-empty').style.display = 'none'; const proxyBase = PROXY_URL.replace(/\/$/, ''); const landUrl = `https://api.vworld.kr/ned/data/ladfrlList?key=${VWORLD_LAND_KEY}&pnu=${pnu}&format=json&numOfRows=5&pageNo=1`; try { const res = await fetch(`${proxyBase}/proxy?url=${encodeURIComponent(landUrl)}`); const d = await res.json(); document.getElementById('lb-loading').style.display = 'none'; const items = d?.ladfrlVOList?.ladfrlVO || d?.fields || []; const list = Array.isArray(items) ? items : [items]; const item = list[0]; if(!item || Object.keys(item).length === 0) { document.getElementById('lb-empty').style.display = 'block'; document.getElementById('lb-empty').className = 'alert alert-warn'; document.getElementById('lb-empty').textContent = '⚠️ 토지 정보를 찾을 수 없습니다. PNU를 확인하세요.'; return; } // 지목 코드 변환 const jimok = jimokLabel(item.lndcgrCd) || item.lndcgrNm || '-'; const area = parseFloat(item.lndpclAr || 0); const areaPy = Math.round(area / 3.305); const price = parseInt(item.pblntfPclnd || 0); const totalPrice = price && area ? Math.round(area * price / 10000) : 0; // 상단 통계 document.getElementById('lb-jimok').textContent = jimok; document.getElementById('lb-area').textContent = area.toLocaleString(); document.getElementById('lb-price').textContent = price ? price.toLocaleString() : '-'; document.getElementById('lb-total').textContent = totalPrice ? totalPrice.toLocaleString() : '-'; // 기본 정보 document.getElementById('lb-basic').innerHTML = `
PNU${pnu}
소재지${item.ldCode || '-'} ${item.mnnmSlno || '-'}
지목${jimok}
면적${area.toLocaleString()}㎡ (${areaPy.toLocaleString()}평)
공시지가${price ? price.toLocaleString()+'원/㎡' : '미공시'}
추정 토지가${totalPrice ? totalPrice.toLocaleString()+'만원' : '-'}
공시기준일${item.pblntfDe || '-'}
`; // 소유자 (개인정보 제외) document.getElementById('lb-owner').innerHTML = `
⚠️ 소유자 개인정보는 토지임야정보 API에서 제공하지 않습니다.
소유자 확인은 등기정보광장 또는 건축물대장을 이용하세요.
소유구분${item.ownshipChgCausCdNm || item.lnmChgCausCd || '-'}
🏛 등기정보광장 바로가기 →
`; // 토지 이용 document.getElementById('lb-use').innerHTML = `
지형높이${item.tpgrphHgCdNm || '-'}
지형형상${item.tpgrphFrmCdNm || '-'}
도로접면${item.roadSideCdNm || '-'}
이용상황${item.ladUseSittnNm || '-'}
변동원인${item.lnmChgCausCdNm || '-'}
변동일자${item.lastUpdtDt || '-'}
`; document.getElementById('lb-result').style.display = 'block'; } catch(e) { document.getElementById('lb-loading').style.display = 'none'; document.getElementById('lb-empty').style.display = 'block'; document.getElementById('lb-empty').className = 'alert alert-warn'; document.getElementById('lb-empty').textContent = '⚠️ 조회 실패: ' + e.message; } } // INIT updateRoof();