我有一个奇怪的请求。我需要查询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")
)
我不认为你会为我解决这个问题,但也许你会指出我正确的方向。
@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个字符)