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

Mongodb 地理多边形不允许Mongo创建2dsphere索引,mongodb,geospatial,Mongodb,Geospatial,我正在使用MongoDB的地理空间特性 我按照以下说明创建2dsphere索引 但是,当该多边形位于集合中时,索引创建失败 错误是: 无法从对象提取地理关键点,几何体格式错误?: 多边形有什么问题?多边形本身没有什么问题。问题是2dsphere索引和相关查询(如$geoIntersects和$near)只对一个半球内的多边形进行操作,请参见。似乎解决此错误的方法是更新文档,请参阅。在2dsphere文档中似乎没有这样的注释 基本上,问题是如果你有一个经度坐标为-90,-90,90和90的矩形,就

我正在使用MongoDB的地理空间特性

我按照以下说明创建2dsphere索引

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

错误是:

无法从对象提取地理关键点,几何体格式错误?:


多边形有什么问题?

多边形本身没有什么问题。问题是2dsphere索引和相关查询(如$geoIntersects和$near)只对一个半球内的多边形进行操作,请参见。似乎解决此错误的方法是更新文档,请参阅。在2dsphere文档中似乎没有这样的注释

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


您还可能会发现一些有趣的空间数据库。请注意,Postgis、SQL Server和Oracle对跨半球的几何图形/地理位置也有各种限制。

多边形中有两次NZ。也许这就是问题的原因。确保多边形不会与自身重叠。