MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como descobrir se existe um ponto em que polígono


O método básico (se você tiver um pequeno número de polígonos) é armazenar todos os polígonos em uma coleção e fazer um loop sobre os elementos para verificar se um ponto está dentro de um polígono.

Por outro lado, se você tiver um número considerável de polígonos, eu recomendaria usar uma estrutura de dados R-tree, que não está disponível na biblioteca padrão. Você deve verificar este projeto, se quiser ir com a opção R-tree:http://sourceforge.net /projects/jsi/ .

R-tree permite indexar retângulos (caixas delimitadoras dos polígonos neste caso). Assim, você pode encontrar um pequeno número de polígonos candidatos muito rapidamente usando o R-tree. Em seguida, você pode percorrer a lista de candidatos para obter o resultado final.