首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优步H3十六进制搜索数据库res 10索引为他们的res 4-9父母

优步H3十六进制搜索数据库res 10索引为他们的res 4-9父母
EN

Stack Overflow用户
提问于 2022-10-09 09:40:32
回答 1查看 75关注 0票数 0

我有一个大型的定位点数据库和它们对应的res 10六边形。

我需要查询这个数据库,并确定在特定的res 4、5、6、7、8和9中有多少个点。

如果不在数据库中添加其他res索引,这是可能的吗?在我可以使用的十六进制命名约定中是否有某种格式/模式?

EN

回答 1

Stack Overflow用户

发布于 2022-10-10 03:30:30

res N索引位于res M的所有子节点都在一个范围内,因此您可以执行范围查询来查找它们。这需要一些争论,但只需要构造查询,而不是运行查询。

查找res 4索引的所有res 4子级,例如841e001ffffffff

  • cellToCenterChild('841e001ffffffff'),它的计算值为8a1e00000007fff。这是范围的底部。

  • ,这个范围的顶端是有点棘手。我们目前不公开它的函数,但是您可以通过将父函数的解析位从4交换到10来构造它。在十六进制中,这只是第二个字符,因此您可以将4替换为生成8a1e001ffffffffa。这不是有效的索引,但适用于范围查询。

  • 使用范围查询查找子索引:

代码语言:javascript
复制
select * from my_data 
  where h3_index between "8a1e00000007fff" and "8a1e001ffffffff";

假设您在h3_index上有一个适当的索引,这应该是相当快的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74003658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档