카카오지도 관련 질문 드립니다.
본문
아래처럼 지도를 생성했는데요 글쓰기 에서 주소를 검색하고 검색한 주소가 지도로 표시되게 할려면
어떻게 해야되는지고수님들 조언 좀 부탁드립니다.
<div id="map" style="width:100%;height:500px;"></div>
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=25e4c6b0c1db6f754627f6cf8562a00d&libraries=services"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
};
// 지도를 생성합니다
var map = new kakao.maps.Map(mapContainer, mapOption);
// 주소-좌표 변환 객체를 생성합니다
var geocoder = new kakao.maps.services.Geocoder();
// 주소로 좌표를 검색합니다
geocoder.addressSearch('제주특별자치도 제주시 첨단로 242', function(result, status) {
// 정상적으로 검색이 완료됐으면
if (status === kakao.maps.services.Status.OK) {
var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
// 결과값으로 받은 위치를 마커로 표시합니다
var marker = new kakao.maps.Marker({
map: map,
position: coords
});
// 인포윈도우로 장소에 대한 설명을 표시합니다
var infowindow = new kakao.maps.InfoWindow({
content: '<div style="width:150px;text-align:center;padding:6px 0;">우리회사</div>'
});
infowindow.open(map, marker);
// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
map.setCenter(coords);
}
});
</script>
<!-- 로드뷰를 표시할 div 입니다 -->
<div id="roadview" style="width:100%;height:500px;"></div>
<script>
var roadviewContainer = document.getElementById('roadview'); //로드뷰를 표시할 div
var roadview = new kakao.maps.Roadview(roadviewContainer); //로드뷰 객체
var roadviewClient = new kakao.maps.RoadviewClient(); //좌표로부터 로드뷰 파노ID를 가져올 로드뷰 helper객체
var position = new kakao.maps.LatLng(33.450701, 126.570667);
// 특정 위치의 좌표와 가까운 로드뷰의 panoId를 추출하여 로드뷰를 띄운다.
roadviewClient.getNearestPanoId(position, 50, function(panoId) {
roadview.setPanoId(panoId, position); //panoId와 중심좌표를 통해 로드뷰 실행
});
</script>
</div>
답변 2
아래처럼 지도를 생성했는데요 글쓰기 에서 주소를 검색하고 검색한 주소가 지도로 표시 하게 를 질문 내용을 토대로 하자면.. 우선 input 창 하나 만들고 폼을 서브밋하면 데이터가 geocoder.addressSearch('주소', .....);
이부분에 들어와야 하잖아요 여기를 document.getElementById('인풋아이디').value 이부분을 addressSearch 내부에 넣어서 활용하면 되지 않을까요? 제이쿼리로 표현 하면 $('#아이디').val() 이걸 addressSearch 내부에 넣으면 되요
어쨌든 한번 연구해보세요
input 태그를 하나 만드시구요.
<input type="text" id="search_map" placeholder="장소를 검색해보세요." />
"geocoder.addressSearch" 이부분을 지우시던가 하시고
아래 내용을 스크립트에 추가해주세요.
인풋 입력 후 엔터를 치면 해당 주소로 마커표시가 되구요.
버튼으로 하시든 하시면 될것 같습니다.
$("#serach_map").keydown((e) => {
if (e.keyCode == 13) {
search_map(this.value);
}
});
// 주소로 좌표를 검색합니다
function search_map(VALUE) {
geocoder.addressSearch(VALUE, function(result, status) {
// 정상적으로 검색이 완료됐으면
if (status === kakao.maps.services.Status.OK) {
var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
// 결과값으로 받은 위치를 마커로 표시합니다
var marker = new kakao.maps.Marker({
map: map,
position: coords
});
// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
map.setCenter(coords);
}
});
}
위에가 어려우시면, 카카오 예제를 해보세요.
!-->!-->