Хакатон : Треки в SpatiaLite

Можно загрузить GPX треки в SpatiaLite. Так их удобнее отображать в QGIS.

Таблица track

CREATE TABLE track (
    id_track INTEGER PRIMARY KEY,	-- ID трека
    id_driver INTEGER,				-- ID водителя
    start_dt TEXT,					-- время первого отчета трека
    finish_dt TEXT,					-- время последнего отчета трека
	geom LINESTRING					-- все точки трека в виде одной линии
)

Таблица point

CREATE TABLE point (
    id_point INTEGER PRIMARY KEY,					-- ID точки
    id_track INTEGER REFERENCES track (id_track),	-- ID трека
    ele REAL,										-- высота в метрах над уровнем моря
    time TEXT,										-- время отчета, в UTC
    sat INTEGER,									-- количество спутников при формировании отчета
    hdop REAL,										-- точность координат по горизонтали (недостоверные данные)
    vdop REAL,										-- точность координат по вертикали (недостоверные данные)
    course REAL,									-- направление движения в градусах (недостоверные данные)
    speed REAL, 									-- скорость движения в м/с, 0.0 означает неизвестное значение (недостоверные данные)
	geom POINT										-- координаты точки
)

Преобразование

Вот скрипт для преобразования gpx файлов (по отдельности или в ZIP архиве) в SpatiaLite БД.

Запускать так (можно указать несколько файлов):

gpx2splite.py ( file.gpx | file.zip )+  file.sqlite

Единственная внешняя зависимость этого скрипта: библиотека pyspatialite. Она уже есть в Ubuntu (пакет python-pyspatialite), или же её можно установить стандартными средствами Питона (например, pip install pyspatialite).

Attachments:

gpx2splite.py (text/x-python)
gpx2splite.py (text/x-python)