GeoWave实现简单的时空范围查询(HBase数据库)

前言

上一篇文章中利用GeoWave导入矢量数据到HBase/Accumulo数据库-CSDN博客,我介绍了如何利用GeoWave导入数据到HBase/Accumulo数据库中,本文,我将介绍如何使用GeoWave实现简单的时空范围查询。

代码

java 复制代码
 HBaseRequiredOptions hBaseRequiredOptions = new HBaseRequiredOptions();
        hBaseRequiredOptions.setZookeeper("localhost:2181");

        HBaseDataStore hBaseDataStore = (HBaseDataStore) DataStoreFactory.createDataStore(hBaseRequiredOptions);
        System.out.println("connect hbase success!");

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        Date startTime = sdf.parse("2013-01-01T12:10:01");
        Date endTime = sdf.parse("2013-01-31T12:11:01");
        // 使用 format()方法格式化时间
        String startTimeFormatted = sdf.format(startTime);
        String endTimeFormatted = sdf.format(endTime);

        Long startTimeStamp = System.currentTimeMillis();

        VectorQueryBuilder queryBuilder = VectorQueryBuilder.newBuilder();
        queryBuilder.indexName("track_point_idx");
        queryBuilder.addTypeName("track_point");
        VectorQueryConstraintsFactory vectorQueryConstraintsFactory = queryBuilder.constraintsFactory();



        Query<SimpleFeature> queryOptions = queryBuilder.constraints(vectorQueryConstraintsFactory.
                    cqlConstraints("BBOX(the_geom, 111.6, 21.31, 111.7, 21.41) " +
                    " and " + "( timestamp >= " + startTimeFormatted + " and timestamp <= " + endTimeFormatted + ")")).build();


        List<SimpleFeature> simpleFeatures = new ArrayList<>();
        try (final CloseableIterator<SimpleFeature> iterator =
                     hBaseDataStore.query(queryOptions)) {
            while (iterator.hasNext()) {
                SimpleFeature feature = iterator.next();
                simpleFeatures.add(feature);
            }
            System.out.println("size:" + simpleFeatures.size());
        }

参考资料

GeoWave Developer Guide

相关推荐
一水3 分钟前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
梵构广告4 分钟前
平台怎么做品牌营销策划?—品牌营销
大数据·人工智能·平面·品牌策划
【心态好不摆烂】5 分钟前
MySQL——复合查询
数据库·mysql
AC赳赳老秦9 分钟前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
Aloudata14 分钟前
Prompt 驱动分析 vs Skill 驱动分析:企业 AI 分析如何从会问走向可复用
大数据·人工智能·数据分析·prompt·skill·语义层
磁爆步兵30 分钟前
内存分区:程序运行的核心秘密
java·开发语言·jvm
数字化老赵34 分钟前
有没有什么好用的AI工具可以用在设备巡检管理的?
大数据·人工智能·设备管理·设备
瞬间&永恒~38 分钟前
【MySQL】 InnoDB 锁等待排查与并发压测实验
运维·数据库·mysql
2401_8812039642 分钟前
一网统管 | 赋能智慧养老,守护夕阳美好时光
大数据·智慧养老·一网统管
布鲁飞丝1 小时前
对 .NET线程 异常退出引发程序崩溃的反思
数据库·c#·.net