jjzjj

ruby - Geohashing - 递归地找到邻居的邻居

我现在正在寻找一种优雅的算法,使用地理散列算法(http://www.geohash.org)递归查找邻居的邻居。基本上采用中央geohash,然后在其周围获得相同大小的散列的第一个“环”(8个元素),然后在下一步中,在第一个周围获得下一个环等。您听说过这样做的优雅方式吗?蛮力可能是拿走每个邻居并让他们的邻居简单地忽略大量重叠。围绕一个中央geohash的邻居已经解决了很多次(这里例如在Ruby中:http://github.com/masuidrive/pr_geohash/blob/master/lib/pr_geohash.rb)编辑澄清:当前的解决方案,通过一个中心键和一个方向

google-app-engine - 应用引擎 : Geospatial queries under Go

在Java(https://cloud.google.com/appengine/docs/java/datastore/geosearch)下似乎有地理空间查询支持,但在Go下似乎完全没有做同样事情的文档。在google.golang.org/appengine中搜索“geo”只会呈现GeoPoint值的构造和验证。由于Java支持此功能,因此显然必须提供API支持。有没有人对此有任何经验或建议?谢谢。编辑:似乎只为Java提供了有限的支持:http://startup-with-gae.blogspot.com/2016/01/geospatial-queries-with-goo

高效的空间索引算法——Geohash 和 Google S2

1前言 在空间索引类问题中,一个最普遍而又最重要的问题是:给定你某个点的坐标,你如何能够在海量的数据点中找到他所在的区域以及最靠近他的点?,比方说客户在路上突然想吃饭了,那么就要根据他的位置查询最近的餐馆并做出推荐。 通常情况下,一提到查找类问题,我们就会想到二分查找或者是B树查找。但是问题在于我们不仅要找到这个点,而且要找到这个点附近的点。因此对于以经纬度来确定的坐标又不好直接进行二分查找。通常情况下我们会用R树、KD树或者是四叉树之类的数据结构来存储这些点从而高效的做到临近点的查找。但是这些数据结构通常都会存在数据冗余,以及不稳定的查改效率;况且抛开他们的时间效率、空间效率以及算法复杂度不

Hbase geohash实现地理轨迹的空间搜索实现思路设计

需求背景:现有用户的出行轨迹都存储在分布式的hbase库中,管理员需要从地图上框选一个矩形或多边形区域,找出该区域和指定时间内活动的用户及其出行轨迹,进行分析。经过调研,了解到关于地理索引有一套比较通用的GeohHash算法,于是使用geohash实现该空间搜索的逻辑。GeoHash是将二维的经纬度转换成字符串,每一个字符串代表了某一矩形区域。也就是说,这个矩形区域内所有的点(经纬度坐标)都共享相同的GeoHash字符串,比如说我在七天酒店,我朋友在附近的世纪百货,我们的经纬度点会得到相同的GeoHash串。这样既可以保护隐私(只表示大概区域位置而不是具体的点),又比较容易做缓存。一.RowK

Redis:如何使用geohash API获取给定矩形中的点?

示例:给定3个点(1,1),(2,2),(5,5)和一个矩形(0,0)(3,3),得到2分(1,1)和(2,2)。用georadius很容易取圆的点,但是好像没有方便的方法取矩形的点。 最佳答案 没有内置的方法可以做到这一点。但是,您可以使用可以覆盖整个矩形的圆进行空间搜索。对于每个检索到的点,检查它是否在矩形内。 关于Redis:如何使用geohashAPI获取给定矩形中的点?,我们在StackOverflow上找到一个类似的问题: https://stac

Geohash算法

用户附近位置计算经纬度与物理距离介绍经纬度是经度与纬度的合称组成一个坐标系统,称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。在一定误差范围内,通常情况下,经纬线和米的换算为:经度或者纬度0.00001度,约等于1米。以下表格列出更细致的换算关系:在纬度相等的情况下在经度相等的情况下经度每隔0.00001度,距离相差约1米;每隔0.0001度,距离相差约10米;每隔0.001度,距离相差约100米;每隔0.01度,距离相差约1000米;每隔0.1度,距离相差约10000米。纬度每隔0.00001度,距离相差约1.1米;每隔0.0001

makefile - Redis 安装问题 - geohash-int/geohash.o

我在尝试安装Redis3.2.1时遇到以下问题:[root@clj-lc-test01redis-3.2.1]#makecdsrc&&makeallmake[1]:Enteringdirectory`/tmp/redis-3.2.1/src'LINKredis-servercc:../deps/geohash-int/geohash.o:Nosuchfileordirectorycc:../deps/geohash-int/geohash_helper.o:Nosuchfileordirectorymake[1]:***[redis-server]Error1make[1]:Leavi

hash - 如何从 redis geohash 中删除一个项目?

Redis3.2支持geohash类型。GEOADDisusedtoaddkeys:>GEOADDrestaurants32.034.0Falafel(integer)1>GEOADDrestaurants32.134.1Pizza(integer)1GEORADIUS用于进行地理查询:>GEORADIUSrestaurants32.0534.05100kmWITHDIST1)1)"Falafel"2)"7.2230"2)1)"Pizza"2)"7.2213"但是,HDEL似乎不起作用:>HDELrestaurantsFalafel(error)WRONGTYPEOperationag