我已经问过同样的问题in this post了,我的例子是关于地球曲率的,所以让我们看看另一个例子。
这次我有两个嵌套的多边形。一个大的和一个小的。使用大的多边形执行$geoWithin查询不会返回任何文档,而使用小的多边形找到文档。有什么想法吗?
https://mongoplayground.net/p/V_3-s-itngA
我要查询的文件在法国西海岸的一个岛上。
{
"_id": {
"$oid": "625fec0f6476793a4581d172"
},
"featureOfInterest": {
"samplingFeature": {
"geometry": {
"type": "Point",
"coordinates": [
-2.3433781679840138,
46.713764788942484
]
},
"name": [
{
"lang": "en",
"text": "France"
}
],
"type": "Feature"
}
}
}
和查询
db.collection.aggregate([
{
$match: {
"$or": [
//Largest polygon - return no document
{
"samplingFeature.geometry": {
"$geoWithin": {
"$geometry": {
"type": "Polygon",
"coordinates": [
[[-55.722656,34.161818],[58.007813,34.161818],[ 58.007813,53.540307],[ -55.722656, 53.540307], [-55.722656,34.161818]]]
}
}
}
},
//Smallest polygon - return the document
//{
// "samplingFeature.geometry": {
// "$geoWithin": {
// "$geometry": {
// "type": "Polygon",
// "coordinates": [[[-5.800781, 42.682435], [9.316406, 42.682435], [9.316406, 50.625073], [-5.800781, 50.625073], [-5.800781, 42.682435]]]
// }
// }
//}
//}
]
}
}
])
1条答案
按热度按时间nukf8bse1#
你让行星向另一个方向弯曲了。你帖子里的坐标画出了这些方框:
标记明显在大盒子外面。
请使用jsfdle的链接来回答你之前的问题,而不是使用globe或者任何你获取图片的地方.两个遥远的点之间的最短路径不一定遵循经度和纬度.请阅读mongo地理空间查询中使用的Geodesic计算的数学.