form 이 적용이 안됩니다. 이유를 모르겠어요.
본문
네이버 지도 api 를 써볼려고 하는데 naver 에서 제공하는 기본 예제를 약간 변경시켰는데...
주소를 "풍덕천로" 라고 입력했습니다.
form 을 쓰지 않은 소스는 정상적으로 출력이 됩니다.: http://awamp.duckdns.org/navermap.php
form 을 써서 검색을 하면 안됩니다. : http://awamp.duckdns.org/navermap2.php 이렇게 하면 검색어를 바꿔도 항상 같은 위치만 출력이 되는데 이유를 모르겠습니다.
검색을 하기위해 GET 값을 변수에 넣었는데 뭔가 잘못한건가요?
var myaddress = $_GET['address']; 대신에 도로명을 소스에 직접 넣으면 작동합니다. navermap.php 처럼.....
아래 navermap2.php 의 소스입니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>네이버 지도 API - 주소로 지도 표시하기</title>
<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?clientId=9DpdzSZN8i4b6ltCv9bT&submodules=geocoder"></script>
</head>
<body>
<div id="map" style="width:100%;height:600px;"></div>
<script>
var map = new naver.maps.Map('map');
var myaddress = $_GET['address'];// 도로명 주소나 지번 주소만 가능 (건물명 불가!!!!)
naver.maps.Service.geocode({address: myaddress}, function(status, response) {
if (status !== naver.maps.Service.Status.OK) {
return alert(myaddress + '의 검색 결과가 없거나 기타 네트워크 에러');
}
var result = response.result;
// 검색 결과 갯수: result.total
// 첫번째 결과 결과 주소: result.items[0].address
// 첫번째 검색 결과 좌표: result.items[0].point.y, result.items[0].point.x
var myaddr = new naver.maps.Point(result.items[0].point.x, result.items[0].point.y);
map.setCenter(myaddr); // 검색된 좌표로 지도 이동
// 마커 표시
var marker = new naver.maps.Marker({
position: myaddr,
map: map
});
// 마커 클릭 이벤트 처리
naver.maps.Event.addListener(marker, "click", function(e) {
if (infowindow.getMap()) {
infowindow.close();
} else {
infowindow.open(map, marker);
}
});
// 마크 클릭시 인포윈도우 오픈
var infowindow = new naver.maps.InfoWindow({
content: '<h4> [네이버 개발자센터]</h4><a href="https://developers.naver.com" target="_blank"><img src="https://developers.naver.com/inc/devcenter/images/nd_img.png"></a>'
});
});
</script>
<form action="navermap2.php" method="get">
<input type="text" name="address" ">
<input type="submit" name="submit" value="Search">
</form>
</body>
</html>
답변을 작성하시기 전에 로그인 해주세요.