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

相关推荐
nanxun88621 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103511 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师1 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师1 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 天前
mac(m5)平台编译openjdk
java
倔强的石头_2 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java