aspx페이지
다음 우편번호 API를 이용해 sample6_execDaumPostcode() 함수에서 받은 우편번호 주소로
다음 로컬 API를 이용한 WGS84() 함수에서 경위도를 받은후
GetTM함수에서 TM좌표로 변환하여 JSON으로 받아 사용하는 코드입니다
* APPKEY는 DAUM에서 발급받은 로컬API사용 APPKEY 입니다(다음 API페이지 참조)
*TM좌표는 지구 타원체를 평면에 투영한 좌표로 반경검색 및 거리계산에 유용한 평면좌표입니다
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="../js/jquery-1.8.3.min.js"></script>
<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>
<script>
function sample6_execDaumPostcode() {
new daum.Postcode({
oncomplete: function (data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
var fullAddr = ''; // 최종 주소 변수
var extraAddr = ''; // 조합형 주소 변수
var dong = '';
// 사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
fullAddr = data.jibunAddress;
} else { // 사용자가 지번 주소를 선택했을 경우(J)
fullAddr = data.jibunAddress;
}
dong = data.bname;
// 사용자가 선택한 주소가 도로명 타입일때 조합한다.
if (data.userSelectedType === 'R') {
//법정동명이 있을 경우 추가한다.
if (data.bname !== '') {
extraAddr += data.bname;
}
// 건물명이 있을 경우 추가한다.
if (data.buildingName !== '') {
extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
}
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ')' : '');
}
// 우편번호와 주소 정보를 해당 필드에 넣는다.
// document.getElementById("ContentPlaceHolder1_WUC_BizCompanyReg_sample6_postcode").value = data.postcode; //6자리 우편번호 사용
document.getElementById("sample6_postcode").value = data.zonecode; //5자리 기초구역번호 사용
document.getElementById("sample6_address").value = fullAddr;
document.getElementById("txtLat").value = "";
document.getElementById("txtLon").value = "";
document.getElementById("txtXTM").value = "";
document.getElementById("txtYTM").value = "";
}
}).open();
}
</script>
<script>
function getWGS84() {
//var getaddr = document.getElementById("sample6_address").value;
//if (getaddr = "") {
// alert("우편번호를 먼저 입력하세요");
// return false;
//}
var getaddr = document.getElementById("sample6_address").value;
var url = "http://apis.daum.net/local/geo/addr2coord?apikey=APPKEY&q=" + getaddr + "&output=json";
// alert(url);
$.getJSON(url + "&callback=?", function (data) {
$.each(data.channel.item, function (i, item) {
var lat = item.point_y;
var lng = item.point_x;
document.getElementById("txtLat").value = lat;
document.getElementById("txtLon").value = lng;
});
getTm();
});
}
function getTm() {
var lat = document.getElementById("txtLat").value;// '37.53717415102401';
var lng = document.getElementById("txtLon").value;// '127.00558034774673';
var url1 = "http://apis.daum.net/local/geo/transcoord?apikey=APPKEY&fromCoord=WGS84&y=" + lat + "&x=" + lng + "&toCoord=TM&output=json";
// alert(url1);
$.getJSON(url1 + "&callback=?", function (data) {
//alert(data.x);
//alert(data.y);
document.getElementById("txtXTm").value = data.x;
document.getElementById("txtYTm").value = data.y;
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="list"></div>
<br />
<br />
<asp:TextBox ID="sample6_postcode" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="65px"></asp:TextBox>
<asp:TextBox ID="sample6_address" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="500px" placeholder="우편번호찾기 클릭하여 주소를 입력 하세요"></asp:TextBox>
<input type="button" id="btnpost" onclick="sample6_execDaumPostcode(); " value="우편번호 찾기" style="width:100px;">
<br />
경위도
<asp:TextBox ID="txtLat" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="200px" MaxLength="40" onchange="tri();" ClientIDMode="Static"></asp:TextBox>
<asp:TextBox ID="txtLon" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="200px" MaxLength="40" ClientIDMode="Static"></asp:TextBox>
<br />
TM좌표<asp:TextBox ID="txtYTm" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="200px" MaxLength="40" ClientIDMode="Static"></asp:TextBox>
<asp:TextBox ID="txtXTm" runat="server" BorderColor="#b9b9b9" BorderWidth="1px" Height="22px" Width="200px" MaxLength="40" ClientIDMode="Static"></asp:TextBox>
<input type="button" id="btnGetWGS84" onclick="getWGS84(); " value="좌표가져오기" style="width:120px;"><br />
<br />
</div>
</form>
</body>
</html>
------- 닷넷덕후 ------
-- 힐링스케치 --
'닷넷덕후 (ASP.NET Tips)' 카테고리의 다른 글
ASP.net Cascading DropdownList JQuery사용 Ajax로 뿌리기 (0) | 2015.11.26 |
---|---|
ASP.NET에서 다음 우편번호 Api 사용 (0) | 2015.11.25 |