¿GPS o triangulación al establecer la posición del usuario en el mapa?

votos
1

He estado programando una aplicación usando el kit de mapas y el SDK 3.0. Todo funciona bien excepto por un detalle. Me he dado cuenta de que al mostrar la ubicación del usuario obtengo diferentes posiciones de usuario en el mapa que depende de la red actual. He leído sobre este problema y entiendo que es común? En mi WLAN, la posición del usuario se muestra correctamente. Cuando uso la red 3G (T-mobile), la posición está a unos 100 metros de mi posición real. Entiendo que esto tiene que ver con la red del teléfono Celluar usando la triangulación y en WLAN es el punto de acceso GPS o WiFi utilizado. Entonces, a mi pregunta. ¿Hay alguna manera de evitar esto? Mi aplicación muestra las posiciones en una ciudad y también la distancia a esas posiciones. Es muy obvio y también engañoso si la posición es falsa debido a las cortas distancias. ¿Hay alguna manera (en el código) para establecer qué método se utilizará para obtener la posición del usuario? He probado todas las otras aplicaciones en mi iPhone usando mapas y el problema parece ser el mismo para todos. (Si alguien quiere probar mi aplicación, está en la tienda de aplicaciones gratis en car2go, también otros comentarios son interesantes) ¡Gracias de antemano! -lazo-

Publicado el 25/08/2009 a las 13:14
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

Core Location proporciona información sobre la precisión vertical y horizontal de la ubicación de la que informa. Uno debe usar esa precisión para informar al usuario si la ubicación es sospechosa. Google Maps hace esto al aumentar el tamaño del círculo azul alrededor del marcador de ubicación. Hay otras maneras de indicar al usuario que la ubicación es sospechosa, cuadros de alerta, que no muestran la ubicación si se sale de una precisión predeterminada, etc.

Ver: http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/occ/instp/CLLocation/horizontalAccuracy

Respondida el 25/08/2009 a las 14:07
fuente por usuario

votos
0

Tal vez puedas usar CoreLocation directamente. CLLocationManagerte da CLLocationobjetos que incluyen su precisión. Si obtienes una precisión inferior a 50 metros, es probable que la ubicación provenga del GPS.

Respondida el 25/08/2009 a las 13:59
fuente por usuario

votos
0

Use una fuente alternativa para su ubicación? Las unidades portátiles de GPS harían el truco.

La verdadera pregunta es cómo puedes corregir los datos que se especifican mediante la triangulación 3G. Me pregunto si puedes hacer un diferencial para corregir los errores de ubicación de la 3G.

1) En una ciudad determinada, calibre los errores de ubicación 3G al trazar la ciudad. Esto podría ser corregido por las redes 3G en cualquier momento, por lo que tendría que tener una forma de verificar y volver a calibrar.

2) Calibre la ubicación de la red 3G usando una ubicación conocida: una ubicación 3G junto con una ubicación GPS. Toma eso como un diferencial que se puede aplicar a otras ubicaciones 3G. Esto supone una compensación consistente en el cálculo de triangulación que probablemente no sea la realidad.

3) Espere a que las redes 3G lo arreglen y no hagan nada mientras tanto.

4) Proporcione al proveedor de red 3G la información de error en su triangulación y vea si es una prioridad para ellos.

No puedo pensar en ninguna otra opción viable ...

Respondida el 25/08/2009 a las 13:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more