地理形状 (Geo Shapes)edit

地理形状(Geo-shapes)使用一种与地理坐标点完全不同的方法。我们在计算机屏幕上看到的圆形并不是由完美的连续的线组成的,而是通过将相邻的像素点着色画出来的一个近似的圆。地理形状的工作方式大致如此。

复杂的形状, 比如点、线、多边形、多多边形、中空多边形, 都是通过 geohash 单元格 “画出来” 的,这些形状会转化为一个被它所覆盖到的 geohash 的集合。

实际上,有两种类型的网格可以被用于 geo-shapes:默认使用的 geohash, 之前已经讨论过,另外一种是 四叉树(quad trees) 。四叉树与 geohash 类似,除了四叉树每个层级只有 4 个单元格,而不是 32 。这个差异取决于选择的编码方式。

组成形状的 geohash 都会被索引, 就好像它们是 词项(term) 一样。有了这些信息,通过查看是否有相同的 geohash 词项(term),就可以很轻易地检查两个形状是否有交集。

geo-shapes 有以下作用:判断查询的形状与索引中的形状的关系。这些 关系 可能是下列之一:

intersects
查询的形状与索引的形状有重叠(默认)。
disjoint
查询的形状与索引的形状完全 重叠。
within
索引的形状完全被包含在查询的形状中。

Geo-shapes 不能用于计算距离、排序、打分或者聚合。