스프라이트 이미지 위치 좌표 조정 문제

안녕하세요.
다름이 아니라 스프라이트 이미지를 통해 마커를 띄우는 중인데요.

여러개 마커 이벤트 등록하기 2 예제를 활용하여 개발중인데 https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/markers_sprites2.png 스프라이트 이미지는 마커가 a,b,c 3개뿐인데 제가 작업중인 프로젝트는 a,b,c이후의 마커를 표시하고 싶습니다.

그래서 찾아보니 일단 15개정도까지 나와있는
http://t1.daumcdn.net/localimg/localimages/07/2012/img/marker_normal.png의 스프라이트 이미지나
https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/marker_number_blue.png의 스프라이트 이미지를 사용하려고 하는데 마커 URl의 png가 통째로 나오더라구요…

검색을 해보니
for (var i = 0, len = positions.length; i < len; i++) {
var gapX = (MARKER_WIDTH + SPRITE_GAP),
originY = (MARKER_HEIGHT + SPRITE_GAP) * i,
overOriginY = (OVER_MARKER_HEIGHT + SPRITE_GAP) * i,
normalOrigin = new kakao.maps.Point(0, originY),
clickOrigin = new kakao.maps.Point(gapX, originY),
overOrigin = new kakao.maps.Point(gapX * 2, overOriginY);

해당 포문에서 스프라이트 위치값을 조정해야 한다고 하시더라구요…

var MARKER_WIDTH = 33, // 기본, 클릭 마커의 너비
	      MARKER_HEIGHT = 36, // 기본, 클릭 마커의 높이
	      OFFSET_X = 12, // 기본, 클릭 마커의 기준 X좌표
	      OFFSET_Y = MARKER_HEIGHT, // 기본, 클릭 마커의 기준 Y좌표
	      OVER_MARKER_WIDTH = 40, // 오버 마커의 너비
	      OVER_MARKER_HEIGHT = 42, // 오버 마커의 높이
	      OVER_OFFSET_X = 13, // 오버 마커의 기준 X좌표
	      OVER_OFFSET_Y = OVER_MARKER_HEIGHT, // 오버 마커의 기준 Y좌표
	      SPRITE_MARKER_URL = 'http://t1.daumcdn.net/localimg/localimages/07/2012/img/marker_normal.png', // 스프라이트 마커 이미지 URL
	      SPRITE_WIDTH = 126, // 스프라이트 이미지 너비
	      SPRITE_HEIGHT = 146, // 스프라이트 이미지 높이
	      SPRITE_GAP = 10; // 스프라이트 이미지에서 마커간 간격

	  var markerSize = new kakao.maps.Size(MARKER_WIDTH, MARKER_HEIGHT), // 기본, 클릭 마커의 크기
	      markerOffset = new kakao.maps.Point(OFFSET_X, OFFSET_Y), // 기본, 클릭 마커의 기준좌표
	      overMarkerSize = new kakao.maps.Size(OVER_MARKER_WIDTH, OVER_MARKER_HEIGHT), // 오버 마커의 크기
	      overMarkerOffset = new kakao.maps.Point(OVER_OFFSET_X, OVER_OFFSET_Y), // 오버 마커의 기준 좌표
	      spriteImageSize = new kakao.maps.Size(SPRITE_WIDTH, SPRITE_HEIGHT); // 스프라이트 이미지의 크기

변수들의 값을 바꾸지 않고 포문의 값을 적절히 바꿔줘야 하는건지
변수들의 값도 제가 원하는 스프라이트 이미지 위치에 맞게 조정을 해야 하는건지
감이 안와서 질문드립니다… 어떤식으로 풀어나가야 할지 조언좀 주시면 감사하겠습니다.

변수의 값을 바꾸지 않으려면 마커 이미지에 맞는 offset들을 미리 정의하고 마커에 맞게 사용하거나
for문에서 각 마커에 맞는 offset을 재정의하여 사용하면 됩니다.

지도 API 관련 문의에 대해서는 환영이지만,
해당 질문은 구현 방식에 관한 문의로 보입니다.
스프라이트 위치 설정 방법을 검색해보시면 다양한 예제들이 나와 있을 거라 생각합니다.

이 곳에서 관련 기능을 구현해 드리거나 상세 코드를 제공해 드리지는 않으니 참고 부탁드립니다.

네 알겠습니다.
스프라이트 이미지 위치에 대해서 더 알아보고 접근할 수 있도록 하겠습니다.
먼저 변수값을 일일이 조정하면서 어떤식으로 이미지 좌표값이 달라지는지 확인해보는 중입니다.
시간 내서 답변해주셔서 감사합니다 :slight_smile:

1개의 좋아요