             
             //Add anchor to scene view
             self.sceneView.session.add(anchor: self.sceneAnchor!)
+        }
+    }
+    
+    //MARK: Scene position
+    
+    class TemporaryAnchor: ARAnchor {
+        var completion: ((_ position: SCNVector3?) -> Void)?
+        
+        init(transform: matrix_float4x4, completion: ((_ position: SCNVector3?) -> Void)?) {
+            self.completion = completion
+            
+            super.init(transform: transform)
+        }
+    }
+    
+    func fetchCurrentScenePosition(completion: @escaping (_ position: SCNVector3?) -> Void) {
+        print("fetch current scene position")
+        if let currentFrame = sceneView.session.currentFrame {
+            let translation = matrix_identity_float4x4
+            let transform = simd_mul(currentFrame.camera.transform, translation)
+            let anchor = TemporaryAnchor(transform: transform, completion: completion)
+            
+            sceneView.session.add(anchor: anchor)
+            
+            //This is continued in renderer:didUpdateNode:forAnchor:,
+            //where it recognises the anchor, figures out the location and calls completion
+        } else {
+            completion(nil)
+        }
+    }
+    
+    //MARK: Scene location estimates
+    
+    ///Adds a scene location estimate based on current time, camera position and location from location manager
+    func addSceneLocationEstimate(location: CLLocation, completion: @escaping () -> Void) {
+        self.fetchCurrentScenePosition() {
+            position in
+            if position != nil {
+                let sceneLocationEstimate = SceneLocationEstimate(location: location, position: position!, date: Date())
+                self.sceneLocationEstimates.append(sceneLocationEstimate)
+            }
+            
+            completion()
         }
     }
     

    //MARK: LocationManager
    
    func locationManagerDidUpdateLocation(_ locationManager: LocationManager, location: CLLocation) {
        
    }
    
    func locationManagerDidUpdateHeading(_ locationManager: LocationManager, heading: CLLocationDirection) {

        sceneView.session.pause()
    }
    
    func setupSceneAnchor() {
        //Heading will be required to setup the node properly
        if let currentFrame = self.sceneView.session.currentFrame,
