/ / MongoDB: encontre a área comum de dois polígonos - mongodb, geoespacial

MongoDB: encontre a área comum de dois polígonos - mongodb, geoespacial

Agradecemos antecipadamente por toda a ajuda.
Eu tenho dois polígonos complexos que estão sobrepostos.
Eu preciso pegar a borda da área que está sobreposta.
Polígono A (borda roxa) e Polígono B (borda verde)

Eu tenho as coordenadas das bordas desses dois polígonos e quero recuperar as coordenadas das bordas da área amarela.

Eu tentei obter $ geoWithing coordenadas de cada um no outro, mas as coordenadas não são ordenadas e eu não posso desenhar o polígono corretamente.
E com $ geoIntersects eu recebo apenas as coordenadas das interseções das bordas, o que não é suficiente para desenhar a área desejada.
Alguém deve ter feito isso antes, então espero que chegue a alguém que possa ajudar.

//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
}
}
});

Então, isso é o que eu tentei, mas não consigo obter esses dois resultados em uma matriz formada ordenada para poder desenhá-lo corretamente.

Respostas:

0 para resposta № 1

Como Blakes Seven mencionado,

O MongoDB não faz isso

Então parei de usar isso porque não tinha uma alternativa simples.

Finalmente eu fiz isso usando PostGIS que tem essa função implementada ST_Intersection que retorna exatamente o que eu precisava que é a borda do polígono que resultou na intersecção.
PostGIS é uma ferramenta poderosa quando se trata de cálculos de geometria, então use-a com confiança.