FAQ

KakaoMapsSDK를 사용할 때 자주 묻는 질문들.
길찾기 라인을 POI 보다 위에 그리고 싶습니다. (혹은 비슷한 다른 종류의 레이어 간의 그리는 순서 문제)

-> 같은 종류의 레이어 간의 그리는 순서는 레이어의 zOrder를 통해 조절할 수 있습니다. 반면에, 다른 종류의 레이어 간의 그리는 순서는 내부적으로 고정된 순서대로 그려지도록 되어 있어 순서를 변경할 수 없습니다.

지도가 정상적으로 그려지지 않습니다.

-> 지도가 정상적으로 보여지지 않는 경우 먼저 아래와 같은 항목들을 확인해보시기 바랍니다.

  • 네트워크 상태가 정상적인지 확인. 간혹 와이파이나 셀룰러 네트워크가 연결되어 있는 것 처럼 보이더라도 실제 통신이 불가능한 경우가 있습니다. 다른 네트워킹이 필요한 서비스에 접근하여 정상적으로 동작하는지 확인해 볼 수 있습니다.
  • 뷰 사이즈 확인. 뷰의 크기가 정상적으로 지정되지 않았거나 가변 레이아웃을 사용하는 경우 뷰의 크기가 0 혹은 작은 값으로 설정되어 있을 수 있습니다. 뷰의 크기가 0으로 설정되어 있는 경우 지도가 정상적으로 그려지지 않습니다.
  • 뷰 상태에 따른 문제 상황 유추
    • 흰색 화면 혹은 container view의 배경색 -> KMContainer의 사이즈 오류 혹은 엔진이 시작되지 않음.
    • 마젠타 - add된 viewInfo가 없음(2.9.2 이전).
    • 옅은 녹색 - add된 viewInfo가 없음(2.9.2 이후).
    • 검은 화면 - viewInfo가 없음.
    • 옅은 미색 - 그릴 지도 데이터가 없거나 카메라 위치, 높이 혹은 레벨 오류.
    • 하늘색 - 바다만 그려짐. 바다 위에 그려질 지도 데이터 수신 실패 혹은 카메라 위치 오류.
  • 좀 더 구체적인 원인을 파악하기 위해서 KMController.getStateDescMessage 함수를 통해 현재 엔진의 상태에 대한 정보를 확인할 수 있습니다. 문의가 필요할 경우 이 정보를 전달해주시면 더욱 빠르게 문제를 파악하는데 도움이 됩니다.
  • 간혹 기기를 재부팅하면 다시 정상적으로 동작하는 경우도 있습니다.
뷰의 크기가 변경되고 나니 지도 레벨이 달라진 것 같습니다

-> 엔진은 내부적으로 뷰의 크기에 따라 화면비와 각 레벨에 해당하는 적정 카메라 높이를 다시 계산합니다. 이에 따라, 뷰 사이즈가 변했을 때 카메라의 위치가 그대로라면 지도 레벨이 달라질 수 있습니다.

지도에 margin을 지정하면 어떤 부분에 영향을 주나요?

-> 지도의 margin은 카메라, SpriteGUI(나침반, 축척 등), 로고의 위치를 지정하는 데 영향을 줍니다. 또한 POI나 infowindow를 화면 내에 보이도록 카메라를 지동 이동시키는 함수들에도 영향을 줍니다. 예를 들어, 지도 중심점을 계산할 때, margin이 지정되어 있으면 지정된 margin 만큼의 영역을 제외한 영역의 중심점을 계산합니다. 마찬가지로, 나침반, 축척, 로고의 위치도 margin을 고려하여 계산합니다.

Route와 Polyline은 무엇이 다른가요?

-> 두 기능 모두 지도상에 선을 표현하는 것은 같지만, 선을 표현하는 목적이 다릅니다. Route는 경로선을 표현하는 데 사용하기 적합한 반면, Polyline은 경로선이 아닌 지도상에 임의의 선을 그리는데 사용하기에 적합한 기능입니다. Route는 segment 로 구분되어 각 segment 마다 다른 스타일을 지정하여 각 경로 구간의 상태를 표현할 수 있으며 경로 속성을 표현하기 위해 패턴도 적용할 수 있습니다.
Route는 경로를 표현하기 위한 기능이므로, 레벨에 따라 적절한 표현을 위해 LOD가 적용됩니다. 그에 따라 경로의 일부가 축약되어 선형이 지정한 데이터와 약간 다르게 표현될 수 있습니다. 또한 segment의 스타일도 LOD에 따라 합쳐지거나 생략될 수 있습니다. 반면에 Polyline은 경로를 표현하기 위한 기능이 아니므로, LOD가 적용되지 않습니다. 따라서, Polyline은 지정한 데이터를 그대로 표현합니다.

Route 색에 알파값이 적용되지 않습니다.

-> Route은 내부 구현상의 한계로 알파값이 적용되지 않습니다.

Route, polygon, polyline의 클릭 이벤트를 받을 수 있나요?

-> Route, polygon, polyline은 클릭 이벤트를 제공하지 않습니다.

Route가 제대로 그려지지 않습니다.

-> 데이터와 스타일이 정상적으로 지정되었는지 확인해 보아야 합니다.

  • Route의 point들이 정상적으로 지정되었는지 확인해 보아야 합니다.
    • 각 segment는 최소 2개 이상의 다른 위치의 point를 가져야 합니다. 또한 segment의 첫번째 point와 마지막 point는 이전 segment의 마지막 point와 다음 segment의 첫번째 point와 동일해야 합니다.
  • segment의 스타일이 정상적으로 지정되었는지 확인해 보아야 합니다.
    • 없는 스타일 인덱스를 지정했거나, 지정된 스타일이 해당 레벨에 대해 그리도록 정의되지 않으면 해당 segment는 그려지지 않습니다.
카메라가 이동될 때 중심좌표를 받아올 수 있나요?

-> 카메라 이동과 관련된 이벤트는 카메라 이동 시작, 카메라 이동 종료 이벤트를 제공합니다. 매 카메라의 위치가 바뀔 때마다 전달되는 이벤트는 제공하지 않습니다. 카메라 위치의 추적이 필요한 경우 카메라 이동이 시작되었을 때 별도의 타이머를 통해 주기적으로 카메라 위치를 확인하는 방법을 사용할 수 있습니다. 매번 위치가 변경될 때마다 임의의 처리를 해야 하는 시나리오의 경우, TrackingManager나 위치를 공유하는 기능, 애니메이션 기능 들을 조합하여 사용하는 것을 고려할 수 있습니다.

POI를 많이 추가하면 느려집니다. 효율적인 방법이 있나요?

-> 많은 양의 POI를 지도상에 표현할 때는 LODPoi를 사용하는 것을 권장합니다. LODPoi는 지도상에 POI를 표현하기 위해 매프레임 계산해야 하는 부분을 사전에 처리하여 대량의 POI를 효율적으로 표현하기 위한 기능입니다. 다만 이러한 기능을 위해 LODPoi는 위치, 회전에 관련된 기능들이 제한됩니다.

카카오맵에는 교통정보, 지적편집도를 표시하는 기능이 있는데 카카오맵 오픈API에서는 지원하지 않나요?

-> 현재 카카오맵 오픈API에서는 교통정보를 표시하는 기능을 제공하지 않습니다. 해당 기능을 사용하기 위해서는 별도의 협의가 필요합니다.

다크모드를 지원하나요?

-> 현재 카카오맵 오픈API에서는 다크모드를 지원하지 않습니다.