传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 588|回复: 5
收起左侧

Geohashing VS. Space filling curve VS. Google S2

[复制链接] |试试Instant~ |关注本帖
sterne 发表于 2017-8-4 07:18:45 | 显示全部楼层 |阅读模式

2017(10-12月) 码农类 硕士 全职@Uber - 内推 - Onsite |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
一个系统设计问题,在设计附近POI, Yelp寻找附近restaurant的时候,我们会用到Geohash, 用00, 01, 10, 11来把一个小的square细分成四块,这个貌似是一个Z curve? 最近看文档看到还有别的Space filling curve, 例如Peano curve, Hilbert curve. 请问Geohashing和各种Curve是什么关系? 根据Uber engineering blog, Uber使用的是Google S2,S2内部使用的是Hilbert curve. 那Google S2跟Geohashing又是什么关系?Google S2是open source的library(*.jar) or restful service?

.1point3acres缃

补充内容 (2017-8-4 07:57):. more info on 1point3acres.com
请教高手解答。
facetothefate 发表于 2017-8-20 05:10:58 | 显示全部楼层
Geohash 原理就是把2维的坐标想办法换成一维,所以你需要一个变换,你这里00 01 10 11 的分发就是一种拉成1维的办法。如果每个格子都是按照这个来,你画个图就能发现每个四个格子之间都是自相似的曲线。所以这个拉成一维的问题就是个分形问题了。因此会有很多种分形曲线的做法。所以geohash就是在一个2维矩阵上生成分形图的过程。
回复 支持 反对

使用道具 举报

facetothefate 发表于 2017-8-20 05:17:13 | 显示全部楼层
facetothefate 发表于 2017-8-20 05:10. 1point 3acres 璁哄潧
Geohash 原理就是把2维的坐标想办法换成一维,所以你需要一个变换,你这里00 01 10 11 的分发就是一种拉成1 ...

然后评价一个分形曲线的效果就是说 地图上两个相近的点要在映射成分形曲线一维点以后也离得近,z curve因为有突变,所以有时候会出现两个二维点离的很近但是在曲线上离得很远的情况。这样你搜最近有什么的时候就出问题了,会丢结果。
回复 支持 反对

使用道具 举报

zhanghaowx 发表于 2017-8-20 06:13:15 | 显示全部楼层
听上去和Tile Scheme很像,看看这个http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
回复 支持 反对

使用道具 举报

f1371342385 发表于 2017-9-4 08:12:53 | 显示全部楼层
那这道题的话 用QuadTree是不是也可以呀
回复 支持 反对

使用道具 举报

胖子Jeffwan 发表于 前天 02:25 | 显示全部楼层
f1371342385 发表于 2017-9-4 08:12
那这道题的话 用QuadTree是不是也可以呀

我觉得可以的。只要说清楚都行
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-24 00:56

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表