2012-04-20 18 views
6

Necesito una manera de categorizar la intensidad de la señal del GPS. Hasta ahora me he encontrado con la propiedad horizontalAccuracy de CLLocation (Class Reference).¿Cómo puedo evaluar la intensidad de la señal GPS? (iPhone)

Para ser más específico, necesito crear algo como lo siguiente; el problema que estoy teniendo es completar las declaraciones if.

if (someLocation.horizontalAccuracy ...) 
{ 
    // No Signal 
} 
else if (someLocation.horizontalAccuracy ...) 
{ 
    // Poor Signal 
} 
else if (someLocation.horizontalAccuracy ...) 
{ 
    // Average Signal 
} 
else if (someLocation.horizontalAccuracy ...) 
{ 
    // Good Signal 
} 
else 
{ 
    // Excellent Signal 
} 

Por favor alguien me puede ayudar en esto?

Respuesta

9

He usado figuras como esto en el pasado:

if (someLocation.horizontalAccuracy < 0) 
{ 
    // No Signal 
} 
else if (someLocation.horizontalAccuracy > 163) 
{ 
    // Poor Signal 
} 
else if (someLocation.horizontalAccuracy > 48) 
{ 
    // Average Signal 
} 
else 
{ 
    // Full Signal 
} 

pero para ser honesto, realmente no funciona muy bien para los usuarios. Se mostraría como de baja precisión, pero cuando miraran la aplicación de mapas, los habría localizado casi a la perfección (aunque con un círculo alrededor de ellos).

En lugar de tratar de definir un nivel de precisión, y si su aplicación está basada en un mapa, ¿podría hacer lo que hace Maps y mostrar la precisión horizontal como una superposición circular? Entonces el usuario puede decidir por sí mismo si es lo suficientemente preciso.

+2

por curiosidad, ¿por qué '163' y por qué' 48'? – Baby

+0

¡Prueba y error si recuerdo correctamente! –

Cuestiones relacionadas