Estoy pensando en la escritura de software para lidiar con GPS Tracks y Waypoints (en su mayoría almacenar, mostrar y calcular medidas tales como la velocidad, el grado, y algunas estadísticas simples).
Me pregunto cuál debe ser el más conceptualmente sólido modelo de datos con respecto a trackpoints, y aquí están algunos de los "candidatos":
-
Teniendo en cuenta las Pistas como las secuencias de los Trackpoints:
1.1. Las pistas son considerados "2D", ya que las proyecciones de los mapas son en 2D. Trackpoints podría o no haber elevación, puede o no tener la marca de hora. La elevación y la marca de tiempo se tienen en cuenta los "extras", "opcional". Para aplicaciones terrestres, elevación es una función directa de lat/lon (que se consigue a través de la DEM);
1.2. Las pistas son considerados "3D" ya que el espacio geográfico es, en efecto 3D, y la trayectoria del receptor es 3D (proyección 2D es así una forma de reducción de datos). Marca de tiempo puede o no estar presente (la pista de que podría haber sido dibujados a mano).
1.3. Las pistas son considerados "4D" (3 espaciales + tiempo). Por lo tanto, un dibujado a mano el mapa es un caso especial donde la elevación y la fecha y hora son
null
o, de lo contrario no existe, pero el Trackpoint propiedades son siempre "no". Las pistas son considerados los diccionarios de los arroyos, donde todas las corrientes tienen la misma longitud. Hay una lista de las latitudes, una lista de longitudes, una lista de elevaciones, una de las marcas de tiempo, etc. Esto hace más fácil para el cálculo de estadísticas de cada propiedad, y el concepto de Trackpoint se convierte en "virtual" en un sentido, ya que es una sección transversal de muchas corrientes.
Si la he entendido a la derecha, el formato GPX adopta 1.1., KML adopta 1.2. (con el apoyo de fecha y hora), y Strava API adopta 2. (en formato JSON), pero al final estos son sólo los formatos de ARCHIVO para la serialización y almacenamiento, no necesariamente para el modelado, representación computacional y numbercrunching.
Hay alguna forma de que se de la copa, en un objeto-orientado sentido, y por qué? (Yo creo que el tipado fuerte y sensible a modelar a menos evitar operaciones que no tiene sentido).
EDIT: algunos "intrigante" preguntas adicionales:
- Es un dibujado a mano de la pista CONCEPTUALMENTE lo mismo que un dispositivo de grabado tracklog? Deben ser de tipos de datos diferentes?
- Debe ser considerado "correcto" KML tiendas null elevaciones como el cero? El cero ES una elevación, y si usted no sabe la elevación no debe asignar un cero, ¿no?
- Debe asunto, en una pista con la elevación, si la elevación es extraído del DEM de datos ("offline") o a partir de los datos del GPS o de la presión barométrica de datos ("en el campo")? Debe ser señalado en el objeto de Pista? Guardado a las diferentes propiedades del Trackpoint? Ignorado? Deben ser diferentes de la colección de tipos de datos?
- Si puedo editar un dispositivo pista grabada en un editor de mapas (agregar, mover y eliminar puntos), o combinar las pistas de diferentes fechas, cómo debe ser la hora en la trackpoints ser manejado? Deben ser "resetted" a null? Si un objeto (trackpoint colección) de un tipo diferente de ser creado a partir de las anteriores?