[KakaoMapsSDK v.2 for iOS] rotateAt 동작하지 않는 문제

안녕하세요. 다음과 같은 코드를 작성했을 때, poi가 회전하지 않는 문제가 있어 문의드립니다.

func kakaoMapDidTapped(kakaoMap: KakaoMap, point: CGPoint) {
    let mapPoint: MapPoint = defaultPositio
    let radian: Double = 3.14

    // print("‼️ move to point: (\(mapPoint.wgsCoord.latitude), \(mapPoint.wgsCoord.longitude))")
    // currentDirectionArrowPoi?.moveAt(mapPoint, duration: 200)
    print("‼️ rotate to radian: \(radian)")
    currentDirectionArrowPoi?.rotateAt(radian, duration: 200)
}

moveAt은 잘 동작하는데, rotateAt은 동작하지 않습니다.
moveAt 주석처리 이후에도 rotateAt은 동작하지 않습니다.
currentDirectionArrowPoi는 nil이 아니고, LodPoi가 아닙니다.

사용법이 잘못된 건지, 아니면 다른 문제가 있는 건지 모르겠습니다 :smiling_face_with_tear:

@jjj1211 안녕하세요.
poi 생성시에 PoiOptions.transformType을 혹시 decal 로 지정하셨나요? decal 로 지정하시면 회전이 되지 않습니다.

1개의 좋아요

아… 제가 PoiOptions.transformType 에 대한 내용을 놓쳤군요. 답변 감사합니다 :+1:

그럼 혹시 개발 문서의 SharingTransform 항목 코드에서 decal로 설정하는 건 잘못된 내용인걸까요?

    func createPois() {
        let view = mapController?.getView("mapview") as! KakaoMap
        let manager = view.getLabelManager()
        let positionLayer = manager.getLabelLayer(layerID: "PositionPoiLayer")
        let directionLayer = manager.getLabelLayer(layerID: "DirectionPoiLayer")
        
        // 현위치마커의 몸통에 해당하는 POI
        let poiOption = PoiOptions(styleID: "positionPoiStyle", poiID: "PositionPOI")
        poiOption.rank = 1
        poiOption.transformType = .decal    //화면이 기울여졌을 때, 지도를 따라 기울어져서 그려지도록 한다.
        let position: MapPoint = MapPoint(longitude: 127.108678, latitude: 37.402001)
        
        _currentPositionPoi = positionLayer?.addPoi(option:poiOption, at: position)
        
        // 현위치마커의 방향표시 화살표에 해당하는 POI
        let poiOption2 = PoiOptions(styleID: "directionArrowPoiStyle", poiID: "DirectionArrowPOI")
        poiOption2.rank = 3
        poiOption2.transformType = .decal
        
        _currentDirectionArrowPoi = positionLayer?.addPoi(option:poiOption2, at: position)
        
        // 현위치마커의 부채꼴모양 방향표시에 해당하는 POI
        let poiOption3 = PoiOptions(styleID: "directionPoiStyle", poiID: "DirectionPOI")
        poiOption3.rank = 2
        poiOption3.transformType = .decal
        
        _currentDirectionPoi = directionLayer?.addPoi(option:poiOption3, at: position)
        
        _currentPositionPoi?.shareTransformWithPoi(_currentDirectionArrowPoi!)  //몸통이 방향표시와 위치 및 방향을 공유하도록 지정한다. 몸통 POI의 위치가 변경되면 방향표시 POI의 위치도 변경된다. 반대는 변경안됨.
        _currentDirectionArrowPoi?.shareTransformWithPoi(_currentDirectionPoi!) //방향표시가 부채꼴모양과 위치 및 방향을 공유하도록 지정한다.
    }

@jjj1211 이 부분은 가이드 내용에 오류가 있는 것이 맞습니다.
방향표시 화살표에는 absoluteRotationDecal 을 사용하시는 것이 맞습니다.
해당 부분은 수정해 놓도록 하겠습니다.

1개의 좋아요