地理形状

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

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

注意

实际上,有两种类型的格子模式能用于地理星座:
默认是使用我们之前讨论过的 geohash;另外还有一种是 象限4叉树(quad trees)。
象限4叉树和geohash类似,只不过它每个层级都是4个单元(而不是像geohash一样的32个)。
这种不同取决于编码方式的选择。

组成一个形状的 geohash 都作为一个组索引在一起。
有这些信息,通过查看是否有相同的geohash 单元,就可以很轻易地检查两个形状是否有交集。

地理形状有这些用处:判断查询的形状与索引的形状的关系;这些关系可能是以下之一:

  • intersects::

    查询的形状与索引形状有重叠(默认)。

  • disjoint::

    查询的形状与索引的形状完全不重叠。

  • within::

    索引的形状完全被包含在查询形状中。

注意

地理形状不能用语计算距离、排序、打分以及聚集。