¿Por qué los valores de latitud y longitud se convierten a 1E6?

Estoy trabajando con latitud / longitud en mi aplicación para Android. ¿Por qué la gente los convierte a 1E6? (es decir, * 1000000) Parece un paso innecesario. ¿Cuál es el beneficio? ¿Los valores no se pueden almacenar simplemente como un doble o un flotador? Por favor explique. Gracias –

3 Solutions collect form web for “¿Por qué los valores de latitud y longitud se convierten a 1E6?”

He trabajado con dispositivos GPS hace algún tiempo y solía hacer ese tipo de conversión principalmente por las siguientes razones:

  1. Tener un valor que es mayor que 1E6 realmente no tiene sentido, a menos que tenga los últimos y más grandes dispositivos GPS militares que tienen una gran precisión
  2. 1E6 puede contener un int que es de 4 bytes para que le ahorra la mitad del espacio si estaba usando un double

¿Por qué la gente los convierte a 1E6?

Porque la API de complementos de Google Maps lo requiere.

¿Cuál es el beneficio? ¿Los valores no se pueden almacenar simplemente como un doble o un flotador?

Es probable que sea demasiado joven para recordar que los PC de sobremesa, y mucho menos los portátiles, podrían no tener un co-procesador de punto flotante. Usted elegiría comprar una CPU 486SX o 486DX, siendo la variante SX más barata pero carente del co-procesador de punto flotante. Las CPU sin un co-procesador de punto flotante pueden hacer cálculos de punto flotante, pero muy lentamente . Intel descartó toda la división SX / DX cuando crearon el procesador Pentium, y así para la mayoría de las PC convencionales, esto no ha sido un problema desde hace algún tiempo.

Sin embargo, las CPU de ARMv5 en el corazón de las primeras dos generaciones de dispositivos Android también carecían de un co-procesador de punto flotante. Tratar de hacer matemáticas de punto flotante de Java en tales dispositivos fue lento, demasiado lento para Google Maps. Por lo tanto, cambiaron las unidades de grados a microdegrees para que pudieran hacer todos sus cálculos en matemáticas de punto fijo, que era aceptablemente rápido.

La precisión más allá de 1E6 no es lo suficientemente precisa según la elección de API de Google. Ahorra espacio para grandes surtidos de puntos del mapa como los necesarios para un sistema de mapas complejos como Google.

  • ¿Por qué el archivo de escritorio AES IO es incompatible con el archivo AES de Android?
  • Comportamiento diferente de la clase StringBuffer en Java y Android
  • Android HttpClient y Cookies
  • Programación Android de fondo de cultivo
  • Android: Cómo iniciar sesión en la página web mediante programación, mediante HttpsURLConnection
  • Cómo crear un nuevo cuadro de diálogo "circle" datepicker android
  • Android: ¿Cómo puedo cambiar la altura de un ProgressBar?
  • Error: (124, 62) error: tipos incompatibles: La clase no se puede convertir en Contexto
  • Anclaje inverso de Android sobre usb (no raíz)
  • Clases de herencia
  • Android - Color de fondo de AlertDialog personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.