usar tipo sacar para mapa longitud latitud google geográficas geograficas ejemplos dato coordenadas con como mysql database database-design gps rdbms

mysql - tipo - ¿Cuántos dígitos significativos debo almacenar en mi base de datos para una coordenada de GPS?



tipo de dato point mysql (8)

Tengo en mi base de datos MySQL ambas coordenadas de longitud y latitud (datos de GPS).

Actualmente se almacena como:

column type ------------------------ geolat decimal(10,6) geolng decimal(10,6)

Pregunta: ¿Realmente necesito un tipo de datos tan grande como decimal(10,6) para almacenar correctamente los datos de coordenadas?

Como tengo un índice combinado de la longitud y la latitud, este tamaño de índice es enorme. Si puedo hacerlo más pequeño sin comprometer nada, sería genial.


Eso depende de qué tan preciso quieras que sea tu ubicación. Obviamente cuanto más grande sea más preciso, y cuanto menor sea, más amplios serán sus resultados. Te sugiero que mantengas tus valores más grandes, ya que en realidad no son muchos datos.


La representación regular de GGA en una salida NMEA Lat / lon es solo 3 posiciones décimas, aproximadamente 10 m de resolución en el ecuador. Algunas marcas agregan un dígito extra personalizado para dar 1m.

4 dígitos deg.mm mm / 1000 también es común.

Si está utilizando RTK-GPS de alta precisión, es posible que necesite más lugares para obtener precisión mm


Si esto es para bienes raíces, ¿realmente tienes tantas casas que 2 bytes guardados por fila van a ser tan notables? Mantendría la mayor precisión posible a menos que haya una buena razón para no hacerlo.


Si todas las coordenadas están en un área específica, arregle un punto central (es decir, puntos promedio actuales y una ronda para obtener un número que pueda decir en voz alta) y luego almacene las coordenadas como relativas a este punto. De esta manera, probablemente pueda omitir los primeros 2-4 dígitos más significativos, lo que significa grandes ahorros. Pero recuerde manejar estos datos solo a través de una Clase o VISTA que devuelva verdaderos coords WGS84.


Siempre he trabajado con seis dígitos después del decimal. Solía ​​hacer trabajos GIS bajo un contrato militar y esto fue suficiente.


También puede intentar almacenar (y / o trabajar con) sus coordenadas en diferentes unidades. Un proyecto en el que trabajé, todas nuestras coordenadas estaban en milisegundos almacenados como largos (tal vez ints, han pasado un par de años). Esto se hizo en parte por la velocidad y el espacio de almacenamiento (este era un sistema integrado). Pero la misma lógica podría aplicarse aquí.


Tenga en cuenta que es más fácil reducir los datos que aumentar los datos. Por lo general, aumentar la precisión de los datos ni siquiera es posible sin volver a medir. Y volver a medir tiene un costo. Al no saber nada más de su situación o la industria, diría que capture la mayor cantidad posible de datos / especificidad.

Los datos que realmente usa pueden seleccionarse de este conjunto. Si termina necesitando un mayor grado de especificidad, siempre puede volver a calcular sin volver a medir.

Además, no estoy seguro de que indexar los datos sin procesar sea lo mejor que se puede hacer, ya que no se trata de un conjunto discreto de elementos. Crear una tabla de puntos de datos menos precisos / más pequeños haría los índices mucho más pequeños.


WGS84 datum WGS84 usualmente se da como coordenadas en una notación completamente decimal, generalmente con 5 decimales, por lo que para la latitud (-90 a +90) puede usar decimal (7, 5) (-90.00000 a 90.00000), para la longitud que podría usar decimal (8, 5) (-180.00000 a 180.00000).

.00001 da una precisión de alrededor de un metro en el ecuador

El tipo de datos DECIMAL / NUMERIC es un entero escalado de precisión fija y las partes positivas y negativas del rango están siempre disponibles; no afectan la precisión o la escala (obviamente se requiere almacenamiento, pero no se puede elegir sobre eso para DECIMAL)