Как удержать Node от движения и остаться на якоре? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть следующий код:

    private func updateNodePosition(){

        if updateNodes{

            locationUpdate += 1

            SCNTransaction.begin()

            SCNTransaction.animationDuration = 1

            if updateLocations.count > 0 {

                myLocation = CLLocation.bestLocationEstimate(locations: 
                updateLocations)

                for node in nodes {

                    print("@7")

                    let translation = Matrix.transformMatrix(for: 

matrix_identity_float4x4, originLocation: myLocation, location: node.location)

                    let position = SCNVector3.positionForNode(transform: 
                    translation)

                    let distance = node.location.distance(from: myLocation)

                    DispatchQueue.main.async {

                        let scale = 100 / Float(distance)

                        node.scale = SCNVector3(x: scale, y: scale, z: scale)

                        node.position = position

                        node.anchor = ARAnchor(transform: translation)

                        print("@8")
                    }
                }
                for pathN in pathNodes {

                    print("@9")

                    let translation = Matrix.transformMatrix(for: 

                    matrix_identity_float4x4, originLocation: myLocation,

                    location: pathN.location)
                    let position = SCNVector3.positionForNode(transform: 
                    translation)

                    let distance = pathN.location.distance(from: myLocation)

                    DispatchQueue.main.async {

                        let scale = 100 / Float(distance)

                        pathN.scale = SCNVector3(x: scale, y: scale, z: scale)

                        pathN.position = position

                        pathN.anchor = ARAnchor(transform: translation)

                        print("@10")
                    }
                    //add vectors to path

                    pathPoints.append(position)
                }
            }
            SCNTransaction.commit()

            path()
        }
        mapView.addOverlay(myRoute.polyline)
    }

В основном он определяет путь от моего текущего местоположения до пункта назначения. Однако проблема, с которой я сталкиваюсь, заключается в том, как путь движется вместе со мной. Он не остается на якоре в одном месте. Я не слишком уверен, как сохранить его в одном месте, чтобы я мог следовать по пути, как вы можете в Google или Apple Maps. Буду признателен за любую помощь по этому вопросу, и, пожалуйста, дайте мне знать, если я смогу дать какую-то ясность.

...