gosmore结果到数据库

时间:2013-07-23 13:07:12

标签: bash sqlite openstreetmap

我有一个奇怪的请求。我需要查询gosmore并将结果保存到sqlite数据库,听起来很简单,但格式并不那么简单。我们的想法是将其保存为二进制blob(二进制浮点表示中的lat,lon对)并计算路上的时间和距离。它必须在bash中完成,所以这实际上是一个棘手的部分。你可能知道,gosmore的结果如下:

Content-Type: text/plain

52.454918,16.953721,J,residential,675,Rubież
52.454502,16.953466,J,residential,665,Bronisza
52.454577,16.947981,J,residential,620,Bronisza
52.454577,16.947885,J,secondary,616,Naramowicka
52.453985,16.947880,J,secondary,610,Naramowicka
52.453596,16.947877,J,secondary,606,Naramowicka
52.453140,16.947873,J,secondary,601,Naramowicka
52.453031,16.947872,j,secondary,601,Naramowicka
52.452947,16.947871,J,secondary,598,Naramowicka
52.452869,16.947871,J,secondary,596,Naramowicka
52.452169,16.947836,J,secondary,592,Naramowicka
52.452119,16.947834,J,secondary,591,Naramowicka
52.452098,16.947833,j,secondary,591,Naramowicka
52.451817,16.947819,j,secondary,589,Naramowicka
52.451746,16.947817,J,secondary,587,Naramowicka
...

第1列是纬度。 第2列是经度。 第5列是上一次的时间。

我需要把它放在哪个表格中:

CREATE TABLE "Route" (
    "StartLatitude" float NOT NULL,
    "StartLongitude" float NOT NULL,
    "EndLatitude" float NOT NULL,
    "EndLongitude" float NOT NULL,
    "TimeSeconds" int,
    "Distance" float,
    "RoutePoints" blob,
    CONSTRAINT "pk_Route" PRIMARY KEY ("StartLatitude", "StartLongitude", "EndLatitude", "EndLongitude")
)

我不认为你会为我解决这个问题,但也许你会指出我正确的方向。

编辑1:

@CL:这假设是这样的:

INSERT INTO "Route" VALUES(52.454918, 16.953721, 52.451796, 16.947887, 3600, 5.982, X'D6D1514238A18741...');

Distance列包含以千米为单位的点之间的距离总和。点之间的距离使用Great Circle Distance Formula计算。如果有更好更快的方法,我也会就此提出建议。

RoutePoints列表示每个航路点(lat,lon)为包含浮点值对的blob(每个值4个字节,HEX字符串中有8个字符)

0 个答案:

没有答案