使用 spring 数据的 Geohash mongo 查询

问题描述

我有一个带字段的类标记

{
  ObjectId id;
  MarkerLocation location;
}

其中 MarkerLocation 具有以下字段:

{
  double langitude;
  double longitude;
  string geohash;
}
  

我在 mongodb 中存储了很多标记,我想使用 geohash (https://en.wikipedia.org/wiki/Geohash) 对它们进行聚类。

所以基本上我有这个功能

SearchResult  getMarkers(double bottomLeftLat,double bottomLeftLong,double topRightLat,double topRightLong,double precision) 

应该返回给定边界框中的簇和标记

流程如下

  1. 在此边界框中获取此精度的图块 geohashes 列表
  2. 计算每个图块内有多少个标记
  3. 对于每个具有多个标记的图块,我们返回标记数量及其平均纬度和经度
  4. 对于每个只有一个标记的图块,我们返回标记

集群:

{ 
  int amount;
  double avgLat;
  double avgLong;
}

 

结果应该是这样的:

SearchResult
{
  Cluster[] clusters;
  Marker[] markers;
}

我正在尝试使用 springframework 数据 mongodb Criteria 来做到这一点,但现在对我来说的主要问题是如何在边界框内获取此瓷砖 geohashes 列表,最重要的是如何根据以下条件分别聚合和分组标记和集群每个图块中的标记数量

我将不胜感激任何帮助或建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)