Получить старт Стоп данные в разностном массиве - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть две таблицы: 1-ая - Таблица местоположений, а 2-ая - Таблица Остановок.

Location Table fields
======================
UserID    Gpsdatetime       Latitude    Longitude
-------------------------------------------------
1   2020-02-12 01:03:18.000 23.421976   72.083997
1   2020-02-12 02:46:09.000 23.033492   72.558313
1   2020-02-12 03:45:43.000 23.033473   72.598341
1   2020-02-12 04:59:19.000 23.035310   72.565583
1   2020-02-12 05:59:09.000 23.043310   72.558583
1   2020-02-12 06:58:59.000 23.053310   72.578583
1   2020-02-12 07:58:49.000 23.033510   72.588583

Stoppage table fields
======================
UserID  StartTime                EndTime                IsStoppage
1       2020-02-12 01:03:18   2020-02-12 02:46:09         1
1       2020-02-12 03:45:43   2020-02-12 03:47:43         0
1       2020-02-12 03:47:43   2020-02-12 03:59:43         0
1       2020-02-12 03:59:43   2020-02-12 04:30:43         0
1       2020-02-12 04:30:43   2020-02-12 04:59:19         0
1       2020-02-12 04:59:19   2020-02-12 05:59:09         1
1       2020-02-12 05:59:09   2020-02-12 06:58:59         1
1       2020-02-12 06:58:59   2020-02-12 07:58:49         1

Теперь мне нужна запись, например, если IsStoppage=1, тогда получим точку широты и долготы на основе времени окончания записи остановки.

Далее, если IsStoppage=0, то запись должна быть похожа на точки широты и долготы между начальным временем первой записи isstoppage 0 и конечным временем последней записи Is Stoppage 0.

Далее, снова следующая запись IsStoppage is 1, затем получите точку широты и долготы записи IsStoppage.

Мне нужен такой массив:

"trackdata": [
  {
    "UserID": 1,
    "StartTime": "2020-02-15T01:27:57",
    "EndTime": "2020-02-17T02:24:26",
    "IsStoppage": true,
    "TrackArray": [
      "Latitude": 23.033463,
      "Longitude": 72.558346
    ]
  },
  {
    "UserID": 1,
    "StartTime": "2020-02-15T03:27:57",
    "EndTime": "2020-02-17T04:24:26",
    "IsStoppage": false,
    "TrackArray": [
      {
        "Latitude": 23.033463,
        "Longitude": 72.558346
      },
      {
        "Latitude": 23.033463,
        "Longitude": 72.558346
      },
      {
        "Latitude": 23.033463,
        "Longitude": 72.558346
      },
      {
        "Latitude": 23.033463,
        "Longitude": 72.558346
      }
    ]
  },
  {
    "UserID": 1,
    "StartTime": "2020-02-15T05:27:57",
    "EndTime": "2020-02-17T06:24:26",
    "IsStoppage": true,
    "TrackArray": [
      "Latitude": 23.033463,
      "Longitude": 72.558346
    ]
  }
]

, чтобы можно было получать записи в соответствии с моим требованием в SQL запросе к серверу ИЛИ любой лог c в C# коде.

...