Bound의 getSouthWest의 출력값 오차 문제

dragend 이벤트 후에

var bound = self.oMap.getBounds();
var t1 = bound.getSouthWest();
var t2 = bound.getNorthEast();
self.searchPoint("", {l:t1.getLat(),t:t1.getLng(),r:t2.getLat(),b:t2.getLng()}, “LatLng”);

남서 및 북동쪽 좌표를 가지고 범위안에 마커를 표시하고 있습니다.

하지만 범위보다 더 많은 마커를 가져오는게 이상해서 확인 해 보니

북동쪽은 drag가 끝난후 click이벤트를 등록해 latLng 꼭지점을 찍으면 getNorthEast()의 결과값과 거의 비슷해서 오차가 없으나 남서쪽은 약 수백미터이상의 오차가 발생하고 있습니다.
예를들어 남서쪽 모서리를 직접 찍은 좌표가 37.5291… 일때 getNorthEast() 함수 결과는 37.5173… 으로 나와서
훨씬 아랫쪽 까지 오차범위가 상당히 큽니다. 그래서 임시로 오차만큼의 좌표를 강제로 빼야 하나 고민중에 있습니다.

지도를 불러오는 div의 사이즈는 960*960px입니다.

음… 제가 테스트할 때는 오차범위 내의 차이만 생기고 있는데요.
지도가 가려져 있을 가능성은 없는지 확인해주세요.
그게 아니라면, 코드와 함께 다시 답변주세요.

코드를 적어 보았습니다.

dragend의 남서쪽좌표, 그리고 그상태에서 지도 남서쪽 끝을 클릭이벤트로 찍어본 좌표 결과가 상이합니다.
북동쪽은 맞구요.
LATITUDE좌표가 특히 상이합니다.
div id=“kakaomap” style=“background-color:transparent;position:relative;width:960px;height:960px;”>

this.oMap = new kakao.maps.Map(document.getElementById(this.mapconf.mapid), {
center : oStartPoint,
level : this.mapconf.zoom,
scrollWheel : true,
draggable : true,
disableDoubleClick : true,
disableDoubleClickZoom : true
});

	this.oMap.setMinLevel(1);
	this.oMap.setMaxLevel(5);
	
	var mapTypeControl = new kakao.maps.MapTypeControl();
	var zoomControl = new kakao.maps.ZoomControl();

this.oMap.addControl(mapTypeControl, kakao.maps.ControlPosition.TOPRIGHT);
this.oMap.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
this.oMap.relayout();

kakao.maps.event.addListener(this.oMap, ‘dragend’, function(oEvent){
var bound = self.oMap.getBounds();
var t1 = bound.getSouthWest();
var t2 = bound.getNorthEast();
alert(t1);
self.searchPoint("", {l:t1.getLat(),t:t1.getLng(),r:t2.getLat(),b:t2.getLng()}, “LatLng”);
});
kakao.maps.event.addListener(this.oMap, ‘click’, function(oEvent){
clkpoint = oEvent.latLng.getLat()+" ,"+oEvent.latLng.getLng();
alert(clkpoint);
});

캡처1
캡처2

relayout 하신게 보이는데 사이즈가 변경되나요?

relayout 은 DIV영역에 맵에 대한 로드 사이즈가 문제가 있나 싶어서 넣어보았구요. 넣기 전과 후가 차이가 없었습니다.
항상 남서쪽 latitude에서 0.012정도의 오차가 발생하는거 같습니다.
테스트 브라우져는 IE11입니다.

보내주신 소스로 IE와 크롬에서 진행을 해보았는데 그 정도의 오차 범위가 안 보이네요…
말씀 주신 오차범위라면 서쪽을 click 했을 때의 오차범위와 비슷한데…
지도 하단의 축척과 copyright 모두 표출되고 있는 거죠?

그러고보니 하단 축척과 COPYRIGHT가 표시가 안되서 확인해보니 div 영역에 position:relative를 해제하면 하단부까지 나오는데요. relative를 써야 하는데 옵션으로 해결할 방법은 없을까요?

네… 지도가 완전히 표출이 된 게 아니라 가려져 있기 때문에 div와 css를 잘 조정하여서 해결해야 할 것 같습니다.

네 덕분에 해결 할 수 있을거 같습니다. 감사드립니다.

1개의 좋아요