0

変なお願いがあります。gosmore にクエリを実行し、結果を sqlite データベースに保存する必要があります。単純に聞こえますが、形式はそれほど単純ではありません。アイデアは、これをバイナリ ブロブ (バイナリ浮動小数点表現の緯度と経度のペア) として保存し、途中で時間と距離を計算することです。これは 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列は、float 値のペアを含む blob としての各ウェイポイント (lat、lon) の表現です (値ごとに 4 バイト、HEX 文字列で 8 文字)

4

0 に答える 0