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

server/2024/12/17 19:45:15/

前言

上一篇文章中利用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


http://www.ppmy.cn/server/150984.html

相关文章

Python常用库介绍系列

在Python的广阔世界里&#xff0c;丰富的库如同璀璨的宝石&#xff0c;为开发者提供了强大的工具。本系列文章将深入介绍Python常用库。从强大的时间处理库datetime到科学计算领域的神器——NumPy库&#xff0c;从优雅的数据分析库Pandas到实用的高效的自动化操作库pyautogui。…

centos7使用haproxy+keepalived搭建负载均衡调度器--yum方式

一、实验规划 node1&#xff1a;haproxykeepalived IP地址&#xff1a;192.168.200.111(主) node2&#xff1a;haproxykeepalived IP地址&#xff1a;192.168.200.111(从) nginx1&#xff1a;nginx IP地址&#xff1a;192.168.200.113 nginx2&#xff1a;nginx IP地址&#x…

11.python文件

文章目录 Python 文件 I/O 总结1. **打印到屏幕**2. **读取键盘输入**3. **打开和关闭文件**3.1 open() 函数3.2 close() 方法 4. **文件读写操作**4.1 write() 方法4.2 read() 方法4.3 readline() 方法4.4 readlines() 方法4.5 seek() 和 tell() 方法 5. **文件重命名和删除**…

docker redis 详细教程

1. 拉取镜像 docker pull redis 2. 创建数据存储目录 cd /home/ mkdir redis cd redis mkdir data mkdir log mkdir conf 3.创建容器并且运行 docker run \ -p 6379:6379 \ --name redis \ -v /home/redis/data:/data \ -d redis 参考链接 史上最详细Docker安装Redis &am…

如何通过编译器标志增强移动应用的安全性

作为一名 Android 或 iOS 开发者&#xff0c;您可能已经熟悉一些常见的安全开发最佳实践&#xff0c;比如验证外部输入、合理管理内存以及避免使用弱加密算法。然而&#xff0c;即便是最精心编写的代码&#xff0c;也可能包含一些 bug&#xff0c;其中一些可能会导致可被利用的…

Java学习Day08——泛型

1. 泛型的理解和好处 1.1 使用传统方法的问题 1. 不能对加入到集合 ArrayList中的数据类型进行约束(不安全) 2. 遍历的时候&#xff0c;需要进行类型转换,如果集合中的数据量较大&#xff0c;对效率有影响 1.2 泛型的好处 1. 编译时&#xff0c;检查添加元素的类型&…

如何使用 uni-app 构建直播应用程序?

使用uni-app构建直播应用程序涉及前端和后端的开发&#xff0c;以及音视频处理技术的选择。下面我将概述一个典型的直播应用架构&#xff0c;并详细说明如何在uni-app中实现关键功能。 直播应用架构 前端&#xff08;uni-app&#xff09;&#xff1a;负责用户界面展示、互动逻…

240004基于Jamva+ssm+maven+mysql的房屋租赁系统的设计与实现

基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化&#xff0c;包括新增了注册功能&#xff0c;房屋模糊查询功能&#xff0c;管理员和用户信息管理等功能&#xff0c;以及对网站界面进行了优…