问题标签 [geohashing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - Redis 中的地理算法
我检查了 Redis 的地理源代码,我无法理解的一个语句是double difference_longitude = asin(sin(distance) / cos(latr));
什么 asin(sin(distance) / cos(latr))
意思?维基百科有什么理论吗?
http://download.redis.io/redis-stable/deps/geohash-int/geohash_helper.c
redis - 如何在 geohash 中使用 Radius Meters 计算 HashBits 长度?
https://github.com/yinqiwen/ardb/wiki/Spatial-Index
https://en.wikipedia.org/wiki/Geohash
基于半径米 2500 公里和 626 公里的 github,HashBits 长度为 8 和 12,但是基于 2500 公里和 630 公里错误的维基百科,纬度位 lng 位 2 和 3,以及 5 和 5。
为什么这两个不同?更确切地说如何根据半径米计算HashBits,例如半径米2500km,为什么HashBits是8,而626km为什么HashBits是12,这些值8和12是如何计算的?或者如何根据HashBits长度8和12计算半径米2500km和626km?任何公式存在吗?
elasticsearch - Logstash查询elasticsearch geohash数据
我正在使用 geohash 聚合位置数据,这在 Chrome Sense 插件上运行良好,但是一旦我尝试通过 logstash 作为 elasticsearch 的输入插件进行查询,它就无法正常工作......我的 Sense 查询:
我的logstash配置文件:
我的日志存储异常:
elasticsearch - Elasticsearch 2.4 Geohash 单元格查询
我的弹性搜索中有以下映射:
我想要做的是查询由单个 geohash 定义的地图区域内本地化的所有记录。我知道 geohash 单元格查询在我的示例中可以完美运行,但不幸的是,geohash_prefix 选项设置为 true 时需要对 geo_point 字段进行索引,这在 elasticearch 2.4 中已弃用。
在最新的弹性搜索版本中正确的方法是什么?我在文档中的任何地方都找不到它。
python - 如何在 Python 中使用 geohash 制作城市的象限?
我想使用Python在象限中绘制一个城市,并且我知道存在一个名为“ geohash ”的模块,它可以从具体坐标返回哈希值。但是,我不知道如何在X大小的象限中映射和分割一个城市。如果有人能告诉我如何做或使用另一个模块,我将不胜感激!
solr - Solr faceting 返回平均值和计数
我正在使用 Solr 4.10 应用地理散列技术来创建标记集群以显示在地图上。我的文档表示地图上的位置,并且每个文档都有一个多值字段,其中包含每个缩放级别的 geohashes。解决方案如here所述。
我正在使用 faceting 来生成集群,它返回给我一个包含 geohash 的对列表以及具有给定 geohash 的文档的数量。由于 geohash 代表集群,所以我将 geohash 转换为 lat/lng 值,这些是我放置集群的坐标。
是否可以让构面在计数旁边返回字段的平均值?基本上我想通过属于集群的标记的每个纬度和经度的平均值来确定集群位置。我知道从 Solr 5.1 开始我们可以使用facet 函数,但我坚持使用 4.10 版本。
提前致谢。
geohashing - 如何查找覆盖给定区域(纬度/经度/半径)的所有地理散列单元
鉴于我知道一个人所在位置的 lat/lng,我可以找到他们所在位置的 geohash。但我也想找到他们“视图”内的所有地理哈希。
因此,如果我知道纬度/经度和半径,比方说从谷歌地图视图中,我想知道该空间中包含的所有地理哈希。我知道我必须选择一些单位。假设 5 个单位,我相信每个 geohash 约为 3803m。
是否有捷径可寻?我可以想出一个粗略的算法,但我对地理哈希的了解还不够,无法完成每个步骤。
假设我们在白金汉宫(51.501364,-0.141890),我们的“视野”半径为 1 公里。
理论上我可以做到这一点。假设我有一个可以将 lat/lng 转换为 geohash 的库,反之亦然。
- 鉴于我们知道地图的中心,找到角落(西北 1 公里,东北 1 公里,西南 1 公里,东南 1 公里)。
- 然后我可以计算左上角的 geohash。ADD ~3803m East,计算 geohash。重复直到geohash等于右上角的geohash。
- 然后我可以沿着右侧做同样的事情,直到我到达左下角。在右侧做同样的事情。然后填充中间,从左上角下方的正方形开始,穿过直到我到达右侧。回到左边但向下一个街区,然后再穿过。回到我终于到达已知的右下角。
这可能有效,我认为它会很慢,而且不完全准确。我确信有一种更简单的方法可以做到这一点。有谁知道可以解决这个问题的公式或算法?
给定一个纬度/经度和半径(R),找到所有的geohash正方形(长度为N),它们覆盖边缘距中心R米的正方形(纬度/经度)。
谢谢!任何使用 geohashing 的部分答案或帮助/公式将不胜感激!
google-maps - google maps api中geohash和地点ID的区别
google maps api中的geohash和Place ID是相似的吗?如果不是,那么根据什么标准定义 Place ID?
javascript - Geofire 如何计算 Firebase 查询的边界地理哈希?
语境
我已经使用 Geofire 和 Firebase 有一段时间了,我很好奇 Geofire 是如何执行它的查询的。我理解从语义上讲,它是坐标和半径的函数,会产生最小和最大哈希值。所以我认为它与 Firebase 结合使用的方式看起来像这样
这两个(最小和最大)geohashes 是根据给定的输入计算的。现在问题来了
问题)
假设我上面说的是正确的,这两个geohashes是如何计算的?当 geohashes 通常表示边界矩形时,它们如何在某个圆形区域内返回结果?最后,两个不同大小的 geohashes 怎么会有相同的中心呢?
为了澄清最后一部分:考虑下图
由于地理散列通过将区域减半为更小的区域来工作,那么两个不同大小(最小值和最大值)的散列如何具有相同的中心点?
假设
我认为这可能就像增加/减少哈希的原始值一样简单,但这没有多大意义,因为增加/减少应该与哈希的大小相关(可以说是“缩放”级别)和查询半径,如果我没记错的话。
elasticsearch - [location] 的映射定义具有不受支持的参数:[geohash : true]:Elasticsearch 5.X
我正在使用elasticsearch 5.2,但是在使用 [geohash:true] 为 geo_point 字段设置索引映射时,出现以下错误
谁能告诉我 [ geoshash ] 是否已贬值,或者在创建文档时是否有另一种方法可以从 geo_point 字段类型生成和存储 geohash?