¿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.

  • Tabulaciones de la barra de herramientas de Android y enfoque del teclado
  • Dibuja parte de la imagen a la pantalla (sin cargar todo a la memoria)
  • Crear una vista compuesta en Android
  • Clases internas: Android vs Java
  • ArrayList Límite para mantener 10 valores
  • Las muestras de `AndEngine` no se están ejecutando en Eclipse actualizando a SDK y SDK recientes y ADT
  • Persista HashMap en ORMLite
  • Variable de ajuste dentro de onDataChange en Firebase (singleValue Listener)
  • Importación de varios proyectos en eclipse
  • Problemas con los últimos frascos de Square - retrofit, okhttp, okio y okhttp-urlconnection
  • Cómo ajustar la sensibilidad del micrófono mientras graba audio en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.