지도 고정하기
본문
로드뷰는 상관없는데 2D 지도는 폰에서 손가락으로 올려도 지도가 안움지기게 하고싶은데
뭘 건드려야지 안움직일 까요...
var mapWrapper = document.getElementById('mapWrapper'); //지도를 감싸고 있는 DIV태그
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapCenter = new daum.maps.LatLng(35.1152427,129.0404083), // 지도의 가운데 좌표
mapOption = {
center: mapCenter, // 지도의 중심좌표
level: 3 // 지도의 확대 레벨
};
// 지도를 표시할 div와 지도 옵션으로 지도를 생성합니다
var map = new daum.maps.Map(mapContainer, mapOption);
map.addOverlayMapTypeId(daum.maps.MapTypeId.ROADVIEW); //지도 위에 로드뷰 도로 올리기
var rvContainer = document.getElementById('roadview'); //로드뷰를 표시할 div
var rv = new daum.maps.Roadview(rvContainer); //로드뷰 객체
var rvClient = new daum.maps.RoadviewClient(); //좌표로부터 로드뷰 파노ID를 가져올 로드뷰 helper객체
toggleRoadview(mapCenter);
// 마커 이미지를 생성합니다.
var markImage = new daum.maps.MarkerImage(
'http://t1.daumcdn.net/localimg/localimages/07/mapapidoc/roadview_wk.png',
new daum.maps.Size(35,39),
{
//마커의 좌표에 해당하는 이미지의 위치를 설정합니다.
//이미지의 모양에 따라 값은 다를 수 있으나, 보통 width/2, height를 주면 좌표에 이미지의 하단 중앙이 올라가게 됩니다.
}
);
// 드래그가 가능한 마커를 생성합니다.
var rvMarker = new daum.maps.Marker({
image : markImage,
position: mapCenter,
draggable: true,
map: map
});
//마커에 dragend 이벤트를 할당합니다
daum.maps.event.addListener(rvMarker, 'dragend', function(mouseEvent) {
var position = rvMarker.getPosition(); //현재 마커가 놓인 자리의 좌표
toggleRoadview(position); //로드뷰를 토글합니다
});
//지도에 클릭 이벤트를 할당합니다
daum.maps.event.addListener(map, 'click', function(mouseEvent){
// 현재 클릭한 부분의 좌표를 리턴
var position = mouseEvent.latLng;
rvMarker.setPosition(position);
toggleRoadview(position); //로드뷰를 토글합니다
});
//로드뷰 toggle함수
function toggleRoadview(position){
//전달받은 좌표(position)에 가까운 로드뷰의 panoId를 추출하여 로드뷰를 띄웁니다
rvClient.getNearestPanoId(position, 50, function(panoId) {
if (panoId === null) {
rvContainer.style.display = 'none'; //로드뷰를 넣은 컨테이너를 숨깁니다
mapWrapper.style.width = '100%';
map.relayout();
} else {
mapWrapper.style.width = '100%';
map.relayout(); //지도를 감싸고 있는 영역이 변경됨에 따라, 지도를 재배열합니다
rvContainer.style.display = 'block'; //로드뷰를 넣은 컨테이너를 보이게합니다
rv.setPanoId(panoId, position); //panoId를 통한 로드뷰 실행
rv.relayout(); //로드뷰를 감싸고 있는 영역이 변경됨에 따라, 로드뷰를 재배열합니다
}
});
}
</script>
답변을 작성하시기 전에 로그인 해주세요.