현재 다음 지도 최대 레벨로 하면 한반도와 중국 일부와 일본 일부가 전부인데 여기서 지도 이동을 할 때 그 범위를 넘어가면 흰색 이미지만 뜨는데 의미가 없잖아요.
그래서 다음 지도의 최대 크기를 넘어서 이동하려고 하면 이동을 못하게 막고 싶은데 이와 관련된 방법은 없을까요?
현재 다음 지도 최대 레벨로 하면 한반도와 중국 일부와 일본 일부가 전부인데 여기서 지도 이동을 할 때 그 범위를 넘어가면 흰색 이미지만 뜨는데 의미가 없잖아요.
그래서 다음 지도의 최대 크기를 넘어서 이동하려고 하면 이동을 못하게 막고 싶은데 이와 관련된 방법은 없을까요?
현재 이동을 제한하는 API는 제공하고 있지 않습니다.
답변해주셔서 감사합니다.
현재 다음 맵 api로 이동을 제한하는 기능은 제공하지 않는다고 하셨는데요.
카카오톡 채팅 추가 기능에서 지도를 보면 딱 우리나라 지도 크기안에서 이동이 제한되어 있는데 그것을 이용하는 방법은 없나요??
엇… 앱 API 에서는 되는가 보네요.
제가 말씀드린 기준은 JS API입니다.
웹으로 구현은 가능합니다.
다만 API레벨에서 지원해주는게 아니라서 줌레벨 변경시에 어색한 부분은 있으니 감안하고 사용하시길 바랍니다.
var pos1 = new daum.maps.LatLng(x1, y1);
var pos2 = new daum.maps.LatLng(x2, y2);
var bounds = new daum.maps.LatLngBounds(pos1, pos2);
var constrainBounds = function() {
var center = map.getCenter();
var clipLat, clipLng, sw, ne;
if (!bounds.contain(center)) {
sw = bounds.getSouthWest();
ne = bounds.getNorthEast();
clipLat = Math.min(Math.max(sw.getLat(), center.getLat()), ne.getLat());
clipLng = Math.min(Math.max(sw.getLng(), center.getLng()), ne.getLng());
map.setCenter(new daum.maps.LatLng(clipLat, clipLng));
}
};
daum.maps.event.addListener( map, 'drag', constrainBounds);
daum.maps.event.addListener( map, 'zoom_changed', constrainBounds);