【问题标题】:A geo polygon does not let Mongo create the 2dsphere index地理多边形不允许 Mongo 创建 2dsphere 索引
【发布时间】:2014-10-10 09:52:10
【问题描述】:

我正在使用 MongoDB 的地理空间功能。

我按照这些指示创建 2dsphere 索引

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

但是,当这个多边形在集合中时,索引创建失败。

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

错误是:

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

多边形有什么问题?

【问题讨论】:

  • 你的多边形中有两次新西兰。也许这会导致问题。确保多边形不与自身重叠。

标签: mongodb geospatial


【解决方案1】:

多边形本身没有问题。问题是 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 对跨半球的几何/地理也有各种限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2021-10-25
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多