Untitled

 avatar
unknown
csharp
a month ago
2.3 kB
11
Indexable
using UnityEngine;
using System.Collections;

public class LocationManager : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(GetLocation());
    }

    IEnumerator GetLocation()
    {
        // Verifica si el dispositivo tiene habilitado el GPS
        if (!Input.location.isEnabledByUser)
        {
            Debug.Log("El GPS está deshabilitado en el dispositivo.");
            yield break;
        }

        // Comienza el servicio de ubicación
        Input.location.Start();

        // Espera hasta que el servicio esté inicializado
        int maxWait = 20;
        while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
        {
            yield return new WaitForSeconds(1);
            maxWait--;
        }

        // Si se agotó el tiempo de espera
        if (maxWait <= 0)
        {
            Debug.Log("Tiempo de espera excedido para la inicialización del GPS.");
            yield break;
        }

        // Si hay un error en el servicio
        if (Input.location.status == LocationServiceStatus.Failed)
        {
            Debug.Log("No se pudo determinar la ubicación del dispositivo.");
            yield break;
        }

        // Obtener latitud y longitud
        float latitude = Input.location.lastData.latitude;
        float longitude = Input.location.lastData.longitude;

        Debug.Log($"Ubicación detectada: Latitud: {latitude}, Longitud: {longitude}");

        // Mapea las coordenadas a una región
        string region = MapCoordinatesToRegion(latitude, longitude);
        Debug.Log($"Región detectada: {region}");

        // Detén el servicio de ubicación para ahorrar batería
        Input.location.Stop();
    }

    string MapCoordinatesToRegion(float latitude, float longitude)
    {
        // Aquí mapea las coordenadas a regiones específicas
        // Este es un ejemplo básico para Chile:
        if (latitude >= -19.9187 && latitude <= -17.5000) return "Arica y Parinacota";
        if (latitude > -21.0000 && latitude <= -19.9187) return "Tarapacá";
        if (latitude > -25.0000 && latitude <= -21.0000) return "Antofagasta";
        // Agrega más rangos según tu necesidad...
        return "Región no identificada";
    }
}
Leave a Comment