本文介绍时空轨迹功能的使用示例。
1、示例下载
下载解压后进入lindorm-sample目录。
mvn install -Dmaven.test.skip=true -s ../settings.xml
编译成功后,在target目录下生成 lindorm-mod-sample-1.0.0.jar。
2、使用示例
进入lindorm-sample目录。
java -jar target/lindorm-mod-sample-1.0.0.jar src/main/resources/template/mod_template.json
通过JSON文件指定操作和参数,JSON文件可参照示例mod_template.json。
2.1 写入数据
在mod_template.json中,设置写入参数。该示例指定AIS轨迹点数据集目录,读取数据并以分段二级索引模型存储轨迹,以ID为主索引,xz2t为二级索引创建表 "traj"并写入数据。分段策略为每50个点划分一段(目前支持BY_DURATION、BY_DISTANCE、BY_ANGLE、BY_COUNT四种分段策略,可以通过修改MOD.java中的SplitConfigs设置,使用其它分段策略)。
{
"operation" : "WRITE",
"zk_address" : "your_zk_address",
"catalog" : "example",
"schema" : "traj",
"enable_secondary_index" : "true",
"print_info": "false",
"enabled_indices" : "id,xz2t",
"primary_index" : "id",
"thread_num": 8,
"input_dir": "path_to_repository/lindorm-sample/src/main/resources/data/traj",
}
"enabled_indices" 指定需要创建的索引(索引类型参见创建索引表),注意需要设置"enable_secondary_index" 为true才能使用二级索引,并设置"primary_index"指定其中的主索引。"thread_num"设置写入数据时的并行线程数,默认为1。
然后执行sample写入。
java -jar target/lindorm-mod-sample-1.0.0.jar src/main/resources/template/mod_template.json
2.2 查询数据
在mod_template.json中设置查询参数,使用示例代码默认的查询范围。
{
"operation" : "QUERY",
"zk_address" : "your_zk_address",
"catalog" : "example",
"schema" : "traj",
"predicate" : "INTERSECTS(geom, POLYGON ((-76 28, -74 28, -74 30, -76 30, -76 28))) and traj_start_time >= 1549510271 AND traj_start_time <= 1549583941",
"return_complete_trajectory" : "false",
"print_results" : "true"
}
"predicate"设置查询语句,"return_complete_trajectory" 指定是否返回完整轨迹(分段存储的轨迹在查询时默认返回符合查询条件的轨迹段,需设定该参数为true才会返回完整轨迹)。
执行sample查询。
java -jar target/lindorm-mod-sample-1.0.0.jar src/main/resources/template/mod_template.json
可以看到返回显示的查询结果。
文档内容是否对您有帮助?