【问题标题】:Caching spatial queries缓存空间查询
【发布时间】:2012-10-17 17:24:25
【问题描述】:

鉴于一个服务会返回一些查询空间数据库的位置(纬度/经度)数据,我对使用内存缓存策略的好方法感兴趣:

  • 经纬度值很难相同,因为它们是由移动位置提供商返回的
  • 服务返回的数据是一些固定点的函数 -> 相似的位置返回相同的值。
  • 我正在使用 Postgis/Java 来完成这项工作。

到目前为止,我最好的想法是使用例如第一个小数来标准化 lat/lng。但不确定是否有聪明的策略或一些 gis 支持。

【问题讨论】:

  • 我不知道编写新代码和仅使用缓存来规范化纬度/经度的有效方法是否有效。除了纬度/经度,你能举出其他例子吗?因为基于 GPS/网络的位置监听器的采样频率约为 1-2 秒

标签: java caching gis postgis


【解决方案1】:

所以您想使用 Java 应用程序作为缓存层来减少空间 PostGIS 数据库的负载?

是的,一个简单的方法是将世界网格化,-180、-90 右下角、左上角 180、90 右上角,并将传入的纬度/经度四舍五入到最接近的度数/整数。请取整而不是取整,因为它会在位置上引入较小的误差。

然后存储每个新网格位置的响应。我会选择二维数组。

稍微复杂一点的解决方案是使用更小的双网格。

【讨论】:

    【解决方案2】:

    Tarantool 1.6.4 具有 RTREE 内存索引,可用于最近邻和矩形内对象搜索。 专门添加了该索引,以便能够充当针对 PostgreSQL 的空间查询的快速内存缓存。

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多