Explain this code "

namespace AR_Fukuoka
{
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using Google.XR.ARCoreExtensions;
    using UnityEngine;
    using UnityEngine.Android;
    using UnityEngine.UI;
    using UnityEngine.XR.ARFoundation;
    using UnityEngine.XR.ARSubsystems;

    /// <summary>
    /// Controller for Geospatial sample.
    /// </summary>
    public class VpsInitializer : MonoBehaviour
    {
        [Header("AR Components")]

        /// <summary>
        /// The AREarthManager used in the sample.
        /// </summary>
        [SerializeField] AREarthManager EarthManager;

        /// <summary>
        /// The ARCoreExtensions used in the sample.
        /// </summary>
        [SerializeField] ARCoreExtensions ARCoreExtensions;

        //private bool _isInARView = false;
        private bool _isReturning = false;
        private bool _enablingGeospatial = false;
        private float _configurePrepareTime = 3f;

        bool _isReady = false;
        public bool IsReady { get { return _isReady; } }

        public bool _lockScreenToPortrait = true;

        private IEnumerator _startLocationService = null;
        /// <summary>
        /// Unity's Awake() method.
        /// </summary>
        public void Awake()
        {
            if (_lockScreenToPortrait)
            {
                // Lock screen to portrait.
                Screen.autorotateToLandscapeLeft = false;
                Screen.autorotateToLandscapeRight = false;
            