地理多边形不允许Mongo创建2dsphere索引

时间:2014-08-17 07:21:42

标签: mongodb geospatial

我正在使用MongoDB的geospacial功能。

我按照这些说明创建了一个2dsphere索引

http://docs.mongodb.org/manual/tutorial/build-a-2dsphere-index/

但是,当此多边形位于集合中时,索引创建将失败。

https://gist.github.com/anonymous/56345a0a96dd1e2c030e

错误是:

无法从对象,格式错误的几何图形中提取地理位置键?:...

多边形有什么问题?

1 个答案:

答案 0 :(得分:0)

多边形本身没有任何问题。问题是2dsphere索引以及$geoIntersects$near等相关查询仅对一个半球内的多边形进行操作,请参阅jira bug。似乎该错误的解决方案是更新文档,请参阅hemisphere restriction comments$geoIntersects documentation虽然没有在2dsphere文档中对此效果进行评论,但似乎也是如此。

基本上,问题是如果你有一个经度坐标为例如-90,-90,90和90的矩形,则无法判断这个矩形是否在0或180 /的东/西方向交叉-180(即日期行),因此任何空间操作的结果都是不确定的。在你的多边形的这种情况下,它可以被推断,并且从视觉检查中是显而易见的,但是通常情况并非如此,因此错误。

您可能还会发现this comparison from Boston GIS个空间数据库很有趣。请注意,Postgis,SQL Server和Oracle对跨越半球的几何/地理区域也有各种限制。