검색한 주소로 찍은 마커를 중심 좌표로 하고싶습니다

목록에서 검색을 했을 때 검색 결과가 1개만 나온다면 1개의 마커가 지도에 찍히게 됩니다.
그 1개의 마커를 중심 좌표로 지정하고 싶은데 제가 한 방법으로는 개체는 이 기능을 지원하지 않는다고 뜹니다.
어떤 방법을 써야하나요?

제가 관심법을 써 보았으나 아직 수준 미달이라 답변을 드릴 수 없네요.

플랫폼이 어떻게 되나요? web? ios? and? 이것 먼저 알려주시고요.

정확하게 어떤 메세지가 어느 부분에서 떴는지 확인해봐야 알 수 있습니다.
어떤 코드를 사용하셨는지 알려주세요.

web 사용하고 있습니다 윈도우 품에 웹브라우저 컨트롤로 지도를 띄우고 있구요
데이터 그리드뷰 컨트롤에 있는 정보들 각각의 위도, 경도들을 aspx파일로 전송한 다음 마커를 찍는 방식입니다. aspx파일에서는 지도를 생성하고 마커를 찍습니다.

        kakao.maps.event.addListener(map, 'center_changed', function () {

            var latlng = map.getCenter();

            var markerPosition = new kakao.maps.Marker.getPosition();

            latlng = markerPosition.getLat() + markerPosition.getLng();
        });

이런식으로 만든 다음 실행한 뒤 검색 결과가 1개로 나오게 한 다음 지도로 이동했을 때 개체는 이 기능을 지원하지 않습니다 라는 메세지가 뜹니다.

자바스크립트는 연산자를 오버로딩 할 수 없으니,
좌표 객체끼리 더하는 것은 절.대. 의도하신대로 동작하지 않을 겁니다.

으음… 코드 매 줄마다 문제가 보이는데,
일단 center_changed 이벤트에서 해당 로직을 수행하면
지도를 마우스로 움직였을 때 제대로 동작하지도 않을 겁니다.

검색 결과를 받는 콜백으로 로직을 옮겨주시고요.

해당 콜백 안에서 대충 다음과 같은 로직이 들어가야 합니다.

var markers = [];
resultArr.forEach(function(result) {
    var pos = new kakao.maps.LatLng(result.y, result.x);
    var marker = new kakao.maps.Marker({ map: map, position: pos });
    markers.push(marker);
});

if (markers.length === 1) { // 받은 검색 결과가 하나라면
    map.setCenter(markers[0].getPosition());
}
1개의 좋아요