【发布时间】:2015-08-11 16:26:43
【问题描述】:
提前感谢所有帮助。
我有两个重叠的复杂多边形。
我需要获取重叠区域的边界。
我有这两个多边形的边界坐标,我想取回黄色区域的边界坐标。
我已经尝试在另一个中获取 $geoWithing 坐标,但是坐标没有排序,我无法正确绘制多边形。
而使用 $geoIntersects 我只能得到边界交叉点的坐标,这不足以绘制所需的区域。
以前一定有人这样做过,所以我希望它可以提供给可以提供帮助的人。
//Get first zone coordinates within zone 2
var zoneOneArea = db.zone.find(
{
"name":"Zone 1",
"location":
{
$geoWithin:
{
$polygon: zoneTwoCoordinatesArray
}
}
});
//Get zone 2 coordinates within zone 1
var zoneTwoArea = db.zone.find(
{
"name":"Zone 2",
"location":
{
$geoWithin:
{
$polygon: zoneOneCoordinatesArray
}
}
});
所以,这就是我尝试过的方法,但我无法将这两个结果放在一个有序的数组中,以便能够正确绘制它。
【问题讨论】:
-
MongoDB 不这样做。您可以在聚合管道中组合两个
$geoIntersects以查找交叉区域内的“点”,而不是交叉区域本身。您需要检索数据并使用您选择的外部 API。大多数语言都有一些流行的实现。 -
好的,我明白了,我需要在服务器端进行这个计算,并直接从数据库中组织起来。你知道 PostGIS 是否有这样的功能吗?感谢您的回答
标签: mongodb geospatial