2017-09-21 19 views
0

j'ai une collection avec ce genre de documents:

{ 
    _id: ObjectId, 
    type: "string", // COUNTRY, STATE, CITY 
    geometry: { 
    type: "MultiPolygon", 
    coordinates: <coordinates> 
    } 
} 

Et je veux calculer par exemple dans lequel COUNTRY est chaque STATE. J'ai essayé de le faire:

var state = db.entity.findOne({_id:ObjectId("someStateID")}); 

db.entity.find({ 
    geometry: { 
    $geoIntersects: { 
     $geometry: state.geometry 
    } 
    }, 
    type:"COUNTRY" 
}); 

Et cela fonctionne très bien, dans certains cas, excepte où la ligne de certains STATE touche la frontière d'un voisin COUNTRY où je suis arrivé deux ou plusieurs documents.

Here is an example image

Est-il possible que je peux trier ce résultat en pourcentage de chevauchement? Ou tout type de filtre pour savoir lequel est le parent exact?

Répondre