LatLongs附近的Geohash Java搜索

LatLongs附近的Geohash Java搜索,java,geolocation,geohashing,Java,Geolocation,Geohashing,我一直在到处寻找一个关于如何使用搜索引擎搜索附近位置的清晰示例。我的意思是,我只需要实施以下情况: 我的纬度和经度都很长。 2-将此纬度/经度转换为散列。(我相信这是通过使用“GeoHash.withBitPrecision(latitude,longitude,64)”来实现的),但我不确定这里的精度是多少。我想64位的精度应该与long相同 3-检索100公里范围内的纬度/经度列表(我甚至不知道如何使用geohash启动) 4-使用纬度/经度结果列表查询对象 但是我找不到任何关于lib的文档

我一直在到处寻找一个关于如何使用搜索引擎搜索附近位置的清晰示例。我的意思是,我只需要实施以下情况:

我的纬度和经度都很长。 2-将此纬度/经度转换为散列。(我相信这是通过使用“GeoHash.withBitPrecision(latitude,longitude,64)”来实现的),但我不确定这里的精度是多少。我想64位的精度应该与long相同 3-检索100公里范围内的纬度/经度列表(我甚至不知道如何使用geohash启动) 4-使用纬度/经度结果列表查询对象

但是我找不到任何关于lib的文档,也找不到任何清晰的示例。 请有人能给我一些建议或者给我一些搜索的起点吗?有没有人已经使用过这个库来获得我想要的结果?
非常感谢!

我以以下方法结束:

Geohash Geohash=Geohash.withCharacterPrecision(纬度、经度、12); 字符串geohashString=geohash.toBase32()

然后根据我想要的距离使用geohashString。我的意思是,根据字符串的精度匹配字符串的前缀。例如

数据库:

Name | geohash | id

Model 1 | gc7x9813vx2r | 1
Model 2 | gc7x8840suhr | 2
Model 3 | gc30psvp0zgr | 3
然后我想得到这个点(53.244664,-6.140530)半径100公里范围内的所有模型


虽然我还没有做任何性能测试,但我认为它不会慢很多。不管怎样,如果性能测试“失败”我将使用binaryString来实现相同的功能。

如果您的位置不在集群的中心,但例如在SW角怎么办?那么您将无法获得所需半径内的所有模型,因为有些模型将位于另一个集群中,或者@thomasgotzsche您是对的。例如,cityA位于矩形的顶部/北部。使用此approach你不会找到一个在北面1公里以外的城市,而是在长方形之外。但是你会找到50公里以外的城市……你找到更好的解决方案了吗?
Geohash geohash = Geohash. withCharacterPrecision(53.244664, -6.140530, 12);
String geohashString = geohash.toBase32().substring(0, 3); //3 characters for around 100km of precision

ofy().load().type(Model.class).filter("geohash >=", geoHashString).filter("geohash <", geoHashString + "\uFFFD");
String geohashString = Geohash. withCharacterPrecision(53.244664, -6.140530, 3).toBase32();