我有一个大型的定位点数据库和它们对应的res 10六边形。
我需要查询这个数据库,并确定在特定的res 4、5、6、7、8和9中有多少个点。
如果不在数据库中添加其他res索引,这是可能的吗?在我可以使用的十六进制命名约定中是否有某种格式/模式?
发布于 2022-10-10 03:30:30
res N索引位于res M的所有子节点都在一个范围内,因此您可以执行范围查询来查找它们。这需要一些争论,但只需要构造查询,而不是运行查询。
查找res 4索引的所有res 4子级,例如841e001ffffffff
cellToCenterChild('841e001ffffffff'),它的计算值为8a1e00000007fff。这是范围的底部。,
4交换到10来构造它。在十六进制中,这只是第二个字符,因此您可以将4替换为生成8a1e001ffffffff的a。这不是有效的索引,但适用于范围查询。。
select * from my_data
where h3_index between "8a1e00000007fff" and "8a1e001ffffffff";假设您在h3_index上有一个适当的索引,这应该是相当快的。
https://stackoverflow.com/questions/74003658
复制相似问题