생성한 여러 마커들의 위,경도 좌표 데이터를 얻고 싶습니다

<script>
	var mapContainer = document.getElementById('map'), // 지도를 표시할 div 
	    mapOption = {
	        center: new kakao.maps.LatLng(37.56092, 126.98904), // 지도의 중심좌표
	        level: 8, // 지도의 확대 레벨
	        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
	    }; 

	// 지도를 생성한다 
	var map = new kakao.maps.Map(mapContainer, mapOption); 




	// 지도를 클릭했을때 클릭한 위치에 마커를 추가하도록 지도에 클릭이벤트를 등록합니다
	kakao.maps.event.addListener(map, 'click', function(mouseEvent) {        
	// 클릭한 위치에 마커를 표시합니다 
	addMarker(mouseEvent.latLng);             
	});	

	// 지도에 표시된 마커 객체를 가지고 있을 배열입니다
	var markers = [];


	// 마커를 생성하고 지도위에 표시하는 함수입니다
	function addMarker(position) {

		// 마커를 생성합니다
		var marker = new kakao.maps.Marker({
    		position: position,
			draggable : true, // 마커를 드래그 가능하도록 설정한다
			map: map // 마커를 표시할 지도 객체
	});

		// 생성된 마커를 배열에 추가합니다
		markers.push(marker);
	}


	
	
	//미완성
	var markersPosition = [];
	for(var i=0; i < markers.length; i++){
    //생성된 마커의 좌표를 입력해준다
		
		markersPosition[i] = [];
		
		
		markers.getPosition();
		markersPosition.push();
		markersPosition[i][0] = marker.getLat();//위도를 반환한다
		markersPosition[i][1] = marker.getLng();//경도를 반환한다

	// 마커 위에 표시할 인포윈도우를 생성한다 : 킥보드 개수
	var infowindow = new kakao.maps.InfoWindow({
	    content : markersPosition[i][2] // 인포윈도우에 표시할 내용
	});

	// 인포윈도우를 지도에 표시한다
	infowindow.open(map, marker);    
    }

	

	

	

</script>

클릭이벤트를 통해 마커들을 표시하면 표시된 마커들의 위, 경도 좌표를 markersPosition 배열에 [위도,경도] 형태의 배열로 넣고 싶습니다.
해보려다가 막혀서… //미완성 태그로 올려뒀습니다

marker 에는 getLat(), getLng() 를 바로 사용하실 수 없고
marker.getPosition().getLat()
marker.getPosition().getLng()
의 형태로 사용하셔야 해요

그리고 별도의 for 문으로 돌리시지 않고
addMarker 안에서 push 하실 때 markersPositions 배열에 값을 바로 넣으셔도 되지 않을까요

1개의 좋아요

감사합니다! 도움이 되었어요~

그런데 for문을 돌리지 않고 markersPositon에 넣으면 일차원배열로 해결되긴하는데, 2차원 배열로
[ [위도1,경도1], [위도2, 경도2], … ] 이런식으로 넣으려면 어떻게 해야할까요? ㅠㅠ

그리고 이 (위도, 경도)들을 WTM 좌표계로 바꿔야하는데, WTM 좌표를 WGS84좌표로 바꾸는 api는 존재하던데 그 반대로 하려면 그냥 입력값만 바꿔주면 되는건가요?

아 해결되었습니다! 감사합니다

1개의 좋아요