我正在使用MongoDB的geospacial功能。
我按照这些说明创建了一个2dsphere索引
http://docs.mongodb.org/manual/tutorial/build-a-2dsphere-index/
但是,当此多边形位于集合中时,索引创建将失败。
https://gist.github.com/anonymous/56345a0a96dd1e2c030e
错误是:
无法从对象,格式错误的几何图形中提取地理位置键?:...
多边形有什么问题?
答案 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对跨越半球的几何/地理区域也有各种限制。