地理形状
地理形状(geo-shapes)使用一种与地理坐标点完全不同的方法。 我们在计算机屏幕上看到的圆形并不是由完美的连续的线组成的;而是用一个个连续的像素点来画出的一个近似圆。 地理形状的工作方式就与此相似。
复杂的形状 — 比如 点集,线,多边形,多多变形,中空多边形等 — 都是通过一个个 geohash单元来画出的。 这些形状会转化为一个被它所覆盖到的 geohash 集合。
注意
实际上,有两种类型的格子模式能用于地理星座: 默认是使用我们之前讨论过的 geohash;另外还有一种是 象限4叉树(quad trees)。 象限4叉树和geohash类似,只不过它每个层级都是4个单元(而不是像geohash一样的32个)。 这种不同取决于编码方式的选择。
组成一个形状的 geohash 都作为一个组索引在一起。 有这些信息,通过查看是否有相同的geohash 单元,就可以很轻易地检查两个形状是否有交集。
地理形状有这些用处:判断查询的形状与索引的形状的关系;这些关系可能是以下之一:
intersects
::查询的形状与索引形状有重叠(默认)。
disjoint
::查询的形状与索引的形状完全不重叠。
within
::索引的形状完全被包含在查询形状中。
注意
地理形状不能用语计算距离、排序、打分以及聚集。