hilbert-curve - 如果希尔伯特曲线四叉树有效,为什么要转换为 S2 单元 ID?
问题描述
我正在研究地理空间服务并使用希尔伯特曲线将纬度和经度转换为四叉树键。
例如,在 30 级时:(
45.5337699,-122.6988316 converts to 2/221022201033023103222221213221
诺布山)
然后可以将其转换为 S2 小区 ID
6094788552675374000
当与附近的位置进行比较时:(
45.5308839,-122.6815796 >> 2/221022201033330012321301320023
珍珠区)
S2 ID:6094788657473797000
很容易看出,我可以对前缀上的 HB Quatree Key 进行扫描,2/221022201033
然后返回 Nob Hill 和 Pearl District 以及该前缀内的任何其他点。
我不明白为什么有必要进一步将 HB 四叉树密钥转换为 S2Cell ID (这似乎是有多少人正在实施这种地理位置技术)。也可以扫描。在这种情况下,前缀6094788
. 有谁知道为什么要采取这个额外的步骤,以及从准确性的角度来看是否有必要?
解决方案
看起来 s2 细胞是希尔伯特曲线的特殊变体,例如摩尔曲线。
摩尔曲线有时更准确,因为起点和终点彼此靠近。
您也可以将四键视为以 4 为底的数字,但不会增加准确性。不过我觉得这样更好看。
推荐阅读
- browser - 如何使用浏览器发送授权标头
- ruby-on-rails - 如何在 Rails 中处理特定用例的多对多关系
- android - 如何在 azure 管道中手动选择 android sdk build-tools 版本?
- javascript - Fancybox 3 未移除触控功能
- react-native -
标签未在 React Native 中显示值 - python - 如何在 Python 中打印文件列表的绝对路径?
- javascript - 检查数字是否尽可能短
- go - 如何将int32 unicode转换为字符串
- java - 为什么我的 Java 绘图代码占用这么多 CPU?
- node.js - Node.js 需要与 React.js 导入