sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man hittar om det finns en punkt i vilken polygon

Den grundläggande metoden (om du har ett litet antal polygoner) är att lagra alla polygoner i en samling och loopa över elementen för att kontrollera om en punkt är inuti en polygon.

Å andra sidan, om du har ett stort antal polygoner, skulle jag rekommendera att använda en R-träddatastruktur, som inte är tillgänglig i standardbiblioteket. Du bör markera det här projektet, om du vill gå med R-tree-alternativet:http://sourceforge.net /projects/jsi/ .

R-träd låter dig indexera rektanglar (avgränsningsrutor för polygonerna i det här fallet). Så du kan hitta ett litet antal kandidatpolygoner mycket snabbt med R-träd. Sedan kan du gå över kandidatlistan för att få det slutliga resultatet.



  1. Hur ersätter man den föråldrade ScriptDb med Mongodb med hjälp av URL Fetch-tjänsten?

  2. Importera CSV-data som en array i MongoDB med mongoimport

  3. Vad kan orsaka en topologi förstördes fel när db.destroyDatabase anropades med node.js mongodb native?

  4. hur man undviker $push-ing-nullvärden i mongo-aggregationsramverk