지도검색 네이버지도
예) 삼성동 24-1, 온나라지도와 연계
Member Infor

전체 방문 : 1,407,336
ㆍ 오늘 : 15 / 어제 : 35
전체 본문글 : 2,738
ㆍ 답변글 : 825
ㆍ 댓글/쪽글 : 61
ㆍ 오늘 본문글 : 0
전체 용량 : 2,000 MB
ㆍ 사용량 : 1,190 MB
ㆍ 남은량 : 810 MB
ㆍ DB : 114,018,960 Byte
 realty
지도와 부동산
지도를 활용한 게시판..... 아직은 보완을 위해 수정 중입니다.
작성자 저녁노을
작성일 2008-06-23 (월) 18:23
홈페이지 http://law21.net
Link#1 ArticleRead.nhn%3Farticleid=1075 (Down:668)
ㆍ추천: 0  ㆍ조회: 5648      
IP: 220.xxx.141
[강좌] 약도 예제(네이버 OPEN API 공식카페)
<?php
define('MAPKEY', 'YOURMAPKEY');
define('NAVERKEY', 'YOURNAVERKEY');

$names = "";
$addresses = "";
$mapWidth = 640;
$mapHeight = 480;
$zoom = 11;
$x = 500000;
$y = 500000;
$markerX = -1;
$markerY = -1;
$query = null;

if (array_key_exists("query", $_GET)) {
    $query = trim($_GET["query"]);
    if(strlen($query) > 0){
        $encodedquery = urlencode($query);
        $url = "http://openapi.naver.com/search?query=$encodedquery&target=local&sort=vote&key=".NAVERKEY;
        $name = simplexml_load_file($url)->channel;

        foreach($name->item as $item) {
            $names .= makeItem($item->title, $item->mapx, $item->mapy);
        }

        $encodedquery = urlencode(iconv('utf-8', 'euc-kr', $query));
        $url2 = "http://maps.naver.com/api/geocode.php?query=$encodedquery&key=".MAPKEY;
        $address = simplexml_load_file($url2);

        foreach($address->item as $item) {
            $point = $item->point;
            $addresses .= makeItem($item->address, $point->x, $point->y);
        }
    } // endif
} // endif

if (array_key_exists("mapWidth", $_GET)) {
    $mapWidth = trim($_GET["mapWidth"]);
    $mapHeight = trim($_GET["mapHeight"]);
    $zoom = trim($_GET["zoom"]);
    $x = trim($_GET["x"]);
    $y = trim($_GET["y"]);
    $markerX = trim($_GET["markerX"]);
    $markerY = trim($_GET["markerY"]);
}

function makeItem($title, $mapx, $mapy)
{
    return "<a href='#' onclick='javascript:mapObj.setCenterAndZoom(new NPoint($mapx, $mapy), 1);'>$title<br></a>";
}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta http-equiv="Cache-Control" content="No-Cache"/>
<meta http-equiv="Pragma" content="No-Cache"/>
<title>sketch map</title>
</head>
<body style="margin:0px 0px 0px 0px">
<div id="mapContainer" style="width:<?echo $mapWidth?>; height:<?echo $mapHeight?>"></div>
<div id="mapapi">
<script type="text/JavaScript" src="http://maps.naver.com/js/naverMap.naver?key=YOURMAPKEY"></script>
</div>

<script type="text/JavaScript">
var markerUrl = 'http://sstatic.naver.com/search/local/icon3/icos_LA.gif';

function newMarker(x, y) {
    if (x < 0 || y < 0) {
        return null;
    }
    var icon = new NIcon(markerUrl, new NSize(15, 14));
    var newMarker = new NMark(new NPoint(x, y), icon);
    mapObj.addOverlay(newMarker);
    return newMarker;
}

function genHtml() {
    var code = "mapObj.setCenterAndZoom(new NPoint(" + mapObj.getCenter() + "), " + mapObj.getZoom() + "); ";

    if (marker) {
        var point = marker.getPoint();
        code += "var pos = new NPoint(" +
            point.getX() + ", " + point.getY() + "); " +
            "marker = new NMark(pos, new NIcon('" + markerUrl +
            "', new NSize(15, 14))); " +
            "mapObj.addOverlay(marker);";
    }

    mapStyle = document.getElementById('mapContainer').style;
    res = document.createTextNode(
        '<div id="mapContainer" style="width:' + mapStyle.width +
        '; height:' + mapStyle.height + '";></div>' +
        document.getElementById('mapapi').innerHTML +
        '<script type="text/JavaScript">' +
        document.getElementById('script').innerHTML +
        code + ' </script>');

    textarea = document.getElementById('result')
    child = textarea.childNodes[0];

    if (child) {
        textarea.replaceChild(res, child);
    }
    else {
        textarea.appendChild(res);
    }

}


function addHiddens(form, dict) {
    for (name in dict) {
        hidden = document.createElement('input');
        hidden.type = 'hidden';
        hidden.name = name;
        hidden.value = dict[name];
        form.appendChild(hidden);
    }
}

function addCommons(form) {
    var center = mapObj.getCenter();
    var point = marker.getPoint();
    addHiddens(form, {'zoom': mapObj.getZoom(), 'x': center.getX(), 'y': center.getY(), 'markerX': point.getX(), 'markerY': point.getY()});
}

function find(form) {
    addCommons(form);
    addHiddens(form, {'mapWidth': <?echo $mapWidth?>, 'mapHeight': <?echo $mapHeight?>});
}

function clickMap(pos) {
    if (marker) {
        marker.setPoint(pos);
    }
    else {
        marker = newMarker(pos.getX(), pos.getY());
    }
}
</script>

<div>
<form id="resize" method="get" action="sketchmap.php" onsubmit="javascript:addCommons(this);">
size
<input type="text" name="mapWidth" value="<?echo $mapWidth?>" style="width: 40;">
<input type="text" name="mapHeight" value="<?echo $mapHeight?>" style="width: 40;">
<input type="submit" value="resize">
</form>
<form id="search" method="get" action="sketchmap.php" onsubmit="javascript:find(this);">
addr
<input type="text" name="query">
<input type="submit" value="search">
</form>
</div>
<div>
<?php
echo $names;
echo $addresses;
?>
</div>
<input type="button" value="html" onclick="javascript:genHtml();"><br/>
<textarea name="result" style="width: 400; height: 300;" id="result">
</textarea>

<script type="text/JavaScript" id="script">
var mapObj = new NMap(document.getElementById('mapContainer'));
var zoom = new NZoomControl();
zoom.setAlign("right");
zoom.setValign("bottom");
mapObj.addControl(zoom);
</script>

<script type="text/JavaScript">
NEvent.addListener(mapObj, "click", clickMap);
var marker = newMarker(<?echo $markerX?>, <?echo $markerY?>);
mapObj.setZoom(<?echo $zoom?>);
mapObj.setCenter(new NPoint(<?echo $x?>, <?echo $y?>));
</script>

</body>
</html>
  0
3500
    N         제목    글쓴이 작성일 조회
12 Google Maps with Street View 저녁노을 2009-02-01 2900
11 Yahoo의 모바일 전송과 지도 연계서비스 저녁노을 2008-07-05 3968
10 국내 정보화사이트 저녁노을 2008-07-02 3266
9 법제처의 Open Api와 RSS 저녁노을 2008-07-01 3059
8 PHP Trackback 저녁노을 2008-06-29 8847
7 RSS 포맷과 구독기 만들기 저녁노을 2008-06-28 3202
6 TextCube에 GoogleMap설치하기 저녁노을 2008-06-25 3223
5 Pivot 저녁노을 2008-06-25 3591
4 Pixelpost 저녁노을 2008-06-25 3083
3 [강좌] 약도 예제(네이버 OPEN API 공식카페) 저녁노을 2008-06-23 5648
2 정보창 테스트~~~~~~~ 저녁노을 2008-03-02 5121
1 게시판에 지도를 연계시키기 위한 실험 저녁노을 2008-02-09 7499
1
Copyright ⓒ 1996-2010 曺衡根法務士 All rights Reserved. 법무사.com/law21.com/법률.com/Court.info 운영자에게 메일 보내기
이 홈페이지는 utf-8로 제작, Internet Explorer 6.0 이상, 1024x768 size에서 가장 잘 보입니다.
남양주시 화도읍 창현리 488-1, 화도파출소앞 ☏ 595-2300
  Roadview(daum) 새주소 지도
Google Translator