el distinct afecta a toda la cadena tras el select antes del from, y como para el mismo idDevice tienes fechas distintas o longitudes distintas o lo que sea, pues te sale lo que te sale
el group by te ofrece un idDevice solamente, pero te ofrece solamente los datos de DATE, speed,longitude, latitude, description del primer registro almacenado en la tabla de cada idDevice
Si no es eso lo que quieres, dinos lo que quieres exactamente, especificando los campos de las tablas y un ejemplo con datos y los que deberías obtener.