카카오맵 웹 마커 및 롱클릭 문의드립니다

안녕하세요
용량을 이유로 안드로이드에서의 카카오 지도 구현을 안드로이드 sdk가 아닌 자바스트립트 웹뷰로 대체해보려고 하는데요,
다음과 같은 궁금한 점이 있습니다.

  1. 지정 가능한 마커 이미지 종류 :
    이 때 사용하는 kakao.maps.MarkerImage의 첫째 파라미터는 이미지의 url인데 꼭 url이 있는 이미지만 사용 가능할까요?
    svg 같은 벡터 이미지를 사용할 수 있는 방법은 없을까요?

  2. 롱클릭 동작 구현 :
    웹뷰로 구현된 카카오 지도엔 클릭, 더블 클릭 이벤트 리스너만 있는데요, 혹시 롱클릭 이벤트 리스너가 따로 있을까요? 없다면 어떻게 구현하면 될까요?

미리 답변 감사드립니다.

안녕하세요~

모바일앱에서 사용하실려면, 아무래도 앱용SDK가 기능도 더 다양하고, 더 최적화가 잘되어 있습니다.
이부분 확인해 주시기 바랍니다.

일단 질문에 답변을 드리면,
1번
ㄴ 내부적으로 Image객체의 src속성에 대입할수 있는 형태만 가능합니다. 기본적인게 string url이라 그러한 것이지, data uri, blob 등은 가능합니다.
2번
ㄴ 별도의 long click 리스너는 없습니다.

우선 Marker, MarkerImage로는 원하시는 기능을 만들기 어려우실 수 있습니다.

그래서 현재 JS SDK에서는 CustomOverlay라고 (Kakao 지도 Web API Documentation)
Marker의 상위 클래스를 제공합니다.
이 객체의 Content 속성에 원하시는 DOM문자열이나 DOM객체를 넣어서 마커와 동일하게도 만들 수 있고, 완전 다르게 지도위의 오버레이를 만들 수 있습니다.
그리고 이 CustomOverlay는 별도의 이벤트 리스너가 없으며, 직접 content속성에 들어간 DOM 노드에 직접 이벤트를 걸어서 이용하셔야 합니다. 즉 확장성을 위한 클래스라 보시면 됩니다.
그래서 long touch의 경우에도 touchstart를 받고 move가 발생하지 않고 일정 시간 이후에 touchend가 발생한다면 long touch으로 볼 수 있겠죠,
또는 touchstart가 발생한 이후에 약 500ms(예시) 이후에 자동으로 핸들러를 실행하고 touchend 리스너에서는 500ms 이전에 touchend가 발생한다면 clearTimeout을 해주는 로직도 있을 수 있습니다.
이는 찾아보시면 여러가지 구현 방법이 나올 것이라 참고하여 직접 구현해 주시면 되십니다.

즉 말씀하신 내용은 CustomOverlay로 가능합니다.

1개의 좋아요