메뉴 건너뛰기

프로그램언어

조회 수 19440 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
<?php
    // 지도의 폭과 높이
    $map_width = 600;
    $map_height = 400;
   
    // 지도의 축적 1~11 사이의 자연수. 1에 가까울 수록 지도가 확대
    $map_zoom = 2;
   
    // 네이버 지도api 키값
    $map_key = "key=코드값";
    if (!$map_query) $map_query = "서울시 강남구 삼성동";
   
    // 여기부터 주소 검색 xml 파싱
    $pquery = $map_key. "&query=". str_replace(" ","",$map_query);  

    $fp = fsockopen ("map.naver.com", 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)";
        //exit;
    } else {
        fputs($fp, "GET /api/geocode.php?");
        fputs($fp, $pquery);
        fputs($fp, " HTTP/1.1\r\n");
        fputs($fp, "Host: map.naver.com\r\n");
        fputs($fp, "Connection: Close\r\n\r\n");
        
        $header = "";
        while (!feof($fp)) {
            $out = fgets ($fp,512);
            if (trim($out) == "") {
                break;
            }
            $header .= $out;
        }
        
        $mapbody = "";
        while (!feof($fp)) {
            $out = fgets ($fp,512);
            $mapbody .= $out;
        }
       
        $idx = strpos(strtolower($header), "transfer-encoding: chunked");
        
        if ($idx > -1) { // chunk data
            $temp = "";
            $offset = 0;
            do {
                $idx1 = strpos($mapbody, "\r\n", $offset);
                $chunkLength = hexdec(substr($mapbody, $offset, $idx1 - $offset));
                
                if ($chunkLength == 0) {
                    break;
                } else {
                    $temp .= substr($mapbody, $idx1+2, $chunkLength);
                    $offset = $idx1 + $chunkLength + 4;
                }
            } while(true);
            $mapbody = $temp;
        }
        //header("Content-Type: text/xml; charset=utf-8");
        fclose ($fp);
    }    
    // 여기까지 주소 검색 xml 파싱
 

    // 여기부터 좌표값 변수에 등록
    $map_x_point_1=explode("<x>", $mapbody);
    $map_x_point_2=explode("</x>", $map_x_point_1[1]);
    $map_x_point=$map_x_point_2[0];
    $map_y_point_1=explode("<y>", $mapbody);
    $map_y_point_2=explode("</y>", $map_y_point_1[1]);
    $map_y_point=$map_y_point_2[0];
    // 여기까지 좌표값 변수에 등록
 

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euckr">
<title>Weddies - 네이버 지도 API 연동</title>
<script type="text/javascript" src="<script type="text/javascript">
function clearText() {
    WedMap.map_query.value = "";
}
</script>
<style>
    .clear {
        clear: both;
    }
    .search {
       
    }
</style>
</head>
<body>
    <h1>TITLE 1</h1>
    <h2>네이버 지도 API 테스트 페이지</h2>
   
    <hr class="clear">
 

    <div id='mapContainer' style='width: <?=$map_width?>px; height: <?=$map_height?>px; padding: 5px; border-style: solid; border-width: 5px; border-color: orange;'>
    <script type="text/javascript">
    <!--
        /*지도 개체 생성 */
     var opts = {width:<?=$map_width?>, height:<?=$map_height?>, mapMode:1};
   
     var mapObj = new NMap(document.getElementById('mapContainer'),opts);
       
        var x_point = <?=$map_x_point?>;
        var y_point = <?=$map_y_point?>;
        var zoom_level = <?=$map_zoom?>;
       
     /* 지도 좌표, 축적 수 준 초기화 */
        var loc_Point = new NPoint(x_point,y_point);  // 포인트 표시
       
     mapObj.setCenterAndZoom(loc_Point,zoom_level);
   
     /* 지도 컨트롤 생성 */
     var zoom = new NZoomControl();
   
     zoom.setAlign("right");
     zoom.setValign("top");
     mapObj.addControl(zoom);
   
     /* 지도 모드 변경 버튼 생성 */
     var mapBtns = new NMapBtns();
     mapBtns.setAlign("right");
     mapBtns.setValign("top");
     mapObj.addControl(mapBtns);
   
    //-->
    </script>
    </div>
   
    <hr class="clear">
   
    <div class="search">
    <form name="WedMap" method="post">
        <input type="text" id="addr" name="map_query" value="검색할 주소를 입력하세요" size="80" maxLength="100" onclick="clearText();" tabindex="1">
        <input type="submit" value="검색">
    </form>
    </div>
   
    <hr class="clear">
   
    <div>
        <ul>
            <dt>주소</dt>
            <dd><?=$map_query?></dd>
            <dt>좌표</dt>
            <dd><?=$map_x_point?></dd>
            <dd><?=$map_y_point?></dd>
        </ul>
    </div>
</body>
</html>

List of Articles
번호 제목 날짜 조회 수
40 gd_info 사용 가능한 GD 라이브러리에 대한 정보를 배열로 반환 2016.12.23 17995
39 gcm 푸시 알림 php 테스트 2018.07.19 5587
38 FPDF - PHP로 PDF 만들기 2014.02.27 21089
37 fopen 파일 열기 2015.04.14 20306
36 fileatime 파일에 최종적으로 접근한 시간을 반환 2016.12.23 18125
35 fcm 푸시 알림 php 테스트 2018.07.19 6065
34 explode - 문자열 나눔 2016.12.23 19945
33 ereg(), eregi(), ereg_replace(), eregi_replace(), split() 대체 2023.01.12 231
32 Drag/Drop HTML elements 2014.03.26 19537
31 dddotag - 허용하지 않는 태그 걸러내기 2019.01.16 1857
30 DB상의 많은 파일을 한꺼번에 다운받기 2014.02.27 28338
29 DB 연동 4단 셀렉트 박스 2018.09.28 6095
28 DB 내용을 화면에 출력(이중 for 문) 2015.04.14 21254
27 DAUM 지도 API 좌표→주소(주소->좌표) 변환 2020.10.05 435
26 date() 함수의 출력 형식 2021.03.26 247
25 current() next() key() 그외 배열관련 함수 2021.03.26 255
24 curl을 이용하여 post, get 방식 으로 데이터 전송하기 2023.01.12 341
23 cUrl를 이용한 json 데이타 주고 받기 2020.09.28 1260
22 csv파일 다루기. fputcsv(), fgetcsv() 2021.03.26 560
21 CodeIgniter에서 PHPExcel 사용하기 file 2017.03.06 20292
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved