- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我现在正在寻找一种优雅的算法,使用地理散列算法 (http://www.geohash.org) 递归查找邻居的邻居。
基本上采用中央 geohash,然后在其周围获得相同大小的散列的第一个“环”(8 个元素),然后在下一步中,在第一个周围获得下一个环等。您听说过这样做的优雅方式吗?
蛮力可能是拿走每个邻居并让他们的邻居简单地忽略大量重叠。围绕一个中央 geohash 的邻居已经解决了很多次(这里例如在 Ruby 中:http://github.com/masuidrive/pr_geohash/blob/master/lib/pr_geohash.rb)
编辑澄清:当前的解决方案,通过一个中心键和一个方向,像这样(带有相应的查找表):
def adjacent(geohash, dir)
base, lastChr = geohash[0..-2], geohash[-1,1]
type = (geohash.length % 2)==1 ? :odd : :even
if BORDERS[dir][type].include?(lastChr)
base = adjacent(base, dir)
end
base + BASE32[NEIGHBORS[dir][type].index(lastChr),1]
end
(摘自 Yuichiro MASUI 的库)
我说这种方法很快就会变得难看,因为一旦我们进入二环或三环,方向就会变得难看。理想情况下,该算法只需采用两个参数,即中心区域和距 0 仅作为中心 geohash 的距离(["u0m"]
和 1 是由周围 8 个相同大小的 geohashes 组成的第一个环它 (=> [["u0t", "u0w"], ["u0q", "u0n"], ["u0j", "u0h"], ["u0k", "u0s"]])
. two 是第二个环,第一个环周围有 16 个区域等。
您有什么方法可以优雅地从位中推断出“环”吗?
最佳答案
这取决于您所说的“邻居”是什么意思。我假设这是在邻近搜索的上下文中使用的。在那种情况下,我认为您最好的选择是从最外圈向内搜索。
假设您可以在可搜索的 Universe 中找到最外层的集合(最长邻近度)。将其存储为新宇宙,然后在该宇宙中找到下一个内部集合。这个搜索应该从 Universe 中减去那个内部集合。存储旧宇宙(最外圈)并重复此过程,直到到达中心。第一次搜索后的每次搜索都会缩小您的搜索范围并给您一个响铃。
关于ruby - Geohashing - 递归地找到邻居的邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018364/
如果 geohash 字符串的长度更大,则更准确。但是是否有任何直接关系,例如如果长度为 7,则它提供 100 米的精度, 即如果两个 geohash(以及它们的任何一个边界框)有前 7 个字符匹配,
两个 geohash 前 6 个字符匹配,两个 geohash 之间的距离最大为 0.61km 两个 geohash 前 5 个字符匹配,两个 geohash 之间的距离最大为 2.5km 问:给定
我有一个问题,我需要检查一个 geohash 是否落入具有动态半径/框的其他点的列表中。我目前正在做的是获取包含纬度/经度的 ortb 出价请求消息,并使用 redis 检查哪些 Activity 将
我在尝试安装 Redis 3.2.1 时遇到以下问题: [root@clj-lc-test01 redis-3.2.1]# make cd src && make all make[1]: Enter
我的点具有给定的latlong和周围的距离-例如{40.6826048,-74.0288632:20英里,51.5007825,-0.1258957:100英里}。如果我选择固定的geohash长度(
我在 Windows 10 中使用 ipython Jupyter 笔记本。我在 cmd 中使用 pip install geohash 安装了 Geohash。 当我尝试使用 geohash(imp
情况: 我有使用 geohash 系统创建 base-32 的 JavaScript 代码。 var BASE32_CODES = "0123456789bcdefghjkmnpqrstuvwxyz"
我正在尝试编写一个 geohashing 函数,该函数采用纬度/经度对并返回其 base2(geohash 一旦转换为 base32)字符串。但是,这给了我不正确的结果。有什么问题吗? public
我想做一个边界框查询 geohashed 字符串的 Trie,其中点位于空间中心周围。当点跨越中心点时,我似乎找不到查询 trie 的好方法。 假设您在 16x16 空间中每个坐标有 4 位(总共 8
我看过this post关于geohashes。根据作者的说法,计算哈希的最后一步是交错 x 和 y 索引值。但这真的有必要吗?只要哈希表是根据更改后的索引规则构建的,是否有适当的理由不只是连接这些值
我现在正在寻找一种优雅的算法,使用地理散列算法 (http://www.geohash.org) 递归查找邻居的邻居。 基本上采用中央 geohash,然后在其周围获得相同大小的散列的第一个“环”(8
我的要求是: 给定一个经纬度边界框,返回一组 geohashes,使得: 集合中的 geohash 数量应该很少(1 到 5 个 geohash 矩形)如果可能。 覆盖范围应尽可能接近输入纬度边界框
您好,我正在使用 googleCharts https://developers.google.com/chart/interactive/docs/gallery/geochart我需要将 GeoH
我找到了this amazing plugin用于在elasticsearch中创建基于geohash的facet。它似乎在 _head pluing 中工作得很好。我只是不太确定如何从 JavaCl
我正在尝试使用 Python 的 geohash 模块获取 geohash 的边界框(x,y 坐标)。我能够成功读取 geohash 并获取它们的质心,但是当我尝试使用 geohash.bbox()
最近我一直在研究 Geohashes和Firestore。我的待办事项场景是收集文件(餐厅),每个餐厅都会有交付给的 Geohashes 列表。 我想避免在文档 restaurant 中添加 geoa
要求保留一个城市中排名前十的地区的列表,这些城市在任何给定时刻都对我们的食品服务产生了需求。这个城市可能有成千上万的地方。 如果必须在内存中进行近乎实时的(滞后时间不超过5分钟)数据存储, -保持按地
我跟随this article用亚马逊DynmoDB索引我的ElasticSearch内容。我在每个DynamoDB行中都有一个嵌套字段,称为location,其中包含5个项目:latitude,lo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我是一名优秀的程序员,十分优秀!