2017-09-26 5 views
0

geoserverのWPSを使用して、geomesa-accumuloデータベースに登録されているすべてのデバイスの現在の位置を表示しようとしています。各デバイスはその位置をX秒ごとに送信するためです。私は、WPSプロセスの設定があり、各デバイスの最後の位置を取得するためにgeomesaのTrackLabelプロセスを使用しています:Geomesa TrackLabel WPSプロセス

track: device_id 
dtg : date_time 

私は、プロセスを実行し、リーフレットを使用して結果を表示する使用します。

spark.sql("select device_id, date_time, position from positions where device_id = 145 order by date_time desc limit 1").show() 

それは最後の位置が2016年5月17日20時47が、であったことを返します。しかし、私はjupyterのノートブックで次のクエリを実行した場合ので結果は、私が期待したものではないと思いますTrackLabelプロセスは2016-03-05 20:12と表示されます。

私の質問:これが正しい方法なら、何が欠けていますか? またはこの問題の正しい解決方法は何ですか?

+0

正しい値が実際に何であるか把握するためにCLIツールを使用できますか? –

+0

再度クエリを実行すると同じ結果が得られます。しかし、TrackLabelプロセスは現在のトラック位置と同じ位置を示していません。また、TrackLabel jsonの結果に表示されないdevice_idもあります。 – jramirez

+0

SQLを起動する代わりに、geomesa CLIツールを使用して検証することはできますか?決定的な答えが得られるはずです。 'geomesa export ... --attributes date_time -q" device_id = 'foo' "|ソート-r | head -n1' –

答えて

1

データセット全体を照会しているので、WFSの結果制限を突っ込んでいる可能性があります。詳細については、hereを参照してください。

+0

このヒントとチャットのすべての助けてくれてありがとうございました。私は最初にgeomesa:Queryを使用して入力データを絞り込み、geomesa:TrackLabelプロセスを使用してデータベースの現在の位置を把握するソリューションを実装しました。 – jramirez

関連する問題