O Que É Interseção de Polígonos em GIS?
A interseção de polígonos é uma operação central de sobreposição vetorial nos fluxos de trabalho de interseção de geoprocessamento GIS: a partir de duas camadas de polígonos, ela retorna uma nova geometria contendo apenas a área que ambas as entradas compartilham. Em qualquer situação em que você precise encontrar polígonos sobrepostos online, sejam dois distritos de zoneamento, uma área de inundação contra uma camada de lotes, ou duas áreas de atendimento, é essa operação que responde à pergunta. Esta ferramenta executa todo o cálculo localmente no seu navegador: desenhe duas formas diretamente no mapa, ou envie um arquivo GeoJSON ou um Shapefile compactado, e ela funciona como uma ferramenta autônoma de sobreposição GeoJSON KML sem enviar seus dados para lugar nenhum.
Exportando Seus Resultados
Cada camada pode ser exportada de forma independente, ou você pode exportar tudo de uma vez:
- Exportação de camada única: O ícone de download ao lado de qualquer camada exporta apenas as feições dessa camada como um arquivo .geojson independente.
- Exportar tudo: O botão "Download All Layers" combina Layer A, Layer B e cada resultado de interseção em uma única FeatureCollection GeoJSON, marcando cada feição com a camada de origem.
- Formato GeoJSON: Os arquivos de saída são GeoJSON padrão conforme a RFC 7946, que abre diretamente no QGIS, ArcGIS, Google Earth, Mapbox e praticamente qualquer outra ferramenta GIS.
Como a saída é GeoJSON simples, ela também é reimportada sem problemas depois nesta mesma ferramenta, ou em qualquer fluxo de exportação de interseção de shapefile que você execute em seguida em um software de GIS desktop.
As Bibliotecas GIS Por Trás da Sobreposição de Polígonos
Toda ferramenta séria de sobreposição GIS é construída sobre um de um pequeno número de motores de geometria computacional, e vale a pena saber qual deles está fazendo o trabalho quando você extrai a área comum entre polígonos em um fluxo de trabalho profissional.
- Turf.js / polygon-clipping: O motor desta própria ferramenta. A função @turf/intersect do Turf usa o pacote npm polygon-clipping, uma implementação em JavaScript puro do algoritmo de linha de varredura de Martinez–Rueda. Por ser JavaScript puro, roda inteiramente na aba do seu navegador, sem ida e volta ao servidor.
- GEOS (Geometry Engine, Open Source): Uma biblioteca C/C++ que calcula ST_Intersection no PostGIS e alimenta o algoritmo nativo de Interseção na Caixa de Ferramentas de Processamento do QGIS. Se você já rodou uma interseção de camadas vetoriais no QGIS, foi a GEOS que fez a matemática geométrica por baixo.
- JTS (Java Topology Suite): A implementação Java original da qual a GEOS foi portada. A JTS sustenta o GeoTools e o processo de Interseção no GeoServer WPS, e é a implementação de referência contra a qual muitas outras bibliotecas se validam.
- Shapely: A biblioteca de geometria do Python, que por sua vez se conecta à GEOS. Cientistas de dados fazendo análise de sobreposição espacial no geopandas estão, um nível abaixo, chamando as mesmas rotinas GEOS que o QGIS e o PostGIS usam.
- shpjs: Cuida do lado do arquivo em vez da matemática geométrica: decodifica um Shapefile compactado enviado (.shp/.dbf/.shx) para GeoJSON inteiramente no navegador, o que permite que esta ferramenta aceite uma exportação de interseção de shapefile como entrada sem nenhum envio a um servidor.
As cinco ferramentas concordam na matemática subjacente, já que todas resolvem o mesmo problema de sobreposição booleana. A diferença prática está em onde o cálculo acontece: GEOS/JTS/Shapely rodam em um servidor ou em uma instalação de GIS desktop, enquanto o motor desta ferramenta, baseado em Turf.js, funciona como um localizador de sobreposição de polígonos no mapa diretamente no seu dispositivo — por isso nunca é necessário enviar um arquivo a um servidor remoto aqui.
Perguntas Frequentes
Casos de Uso Reais
Gerenciando Múltiplas Camadas
O gerenciador de camadas na barra lateral mantém em uma única lista cada camada de polígonos que você adiciona, além de cada resultado de interseção que você gera. Você pode executar uma interseção mais de uma vez com pares de camadas diferentes, manter todos os resultados no mapa ao mesmo tempo, e excluir qualquer camada que não precise mais sem afetar as outras — útil quando você está verificando a sobreposição entre uma camada base e várias camadas candidatas, uma de cada vez.
Passo a Passo: Encontrando uma Sobreposição de Polígonos





Como Adicionar Suas Camadas de Polígonos
Há duas formas de trazer polígonos para a ferramenta antes de executar uma interseção:
- Desenhar no mapa: Clique em "Draw Polygon", clique no mapa para posicionar os vértices, depois dê um duplo clique, pressione Enter, ou clique em Finish para fechar a forma. Repita para adicionar um segundo polígono.
- Enviar um arquivo: Arraste e solte um arquivo .geojson ou um Shapefile compactado (.zip com .shp/.dbf/.shx dentro) em qualquer lugar do mapa, ou use o botão Upload. Apenas feições do tipo Polygon e MultiPolygon são lidas; pontos e linhas são ignorados.
Depois de ter pelo menos duas camadas de polígonos, escolha uma como Layer A e a outra como Layer B na barra lateral, e clique em "Find Intersection" para calcular a área compartilhada.
Estilizando Suas Camadas
Cada camada, incluindo o resultado da interseção, pode ser estilizada de forma independente:
- Seletor de cor: Clique na amostra de cor ao lado de qualquer camada na barra lateral para mudar instantaneamente sua cor de preenchimento e contorno.
- Alternar visibilidade: Desmarque uma camada para escondê-la no mapa sem excluí-la, útil para comparar Layer A e Layer B separadamente com o resultado da interseção.
- Zoom na camada: Clique no ícone de alvo ao lado de uma camada para ajustar a visualização do mapa aos seus limites.
Nenhuma dessas configurações de estilo é salva fora da sua sessão — elas só controlam a aparência do mapa enquanto você trabalha.
Como Funciona o Algoritmo de Interseção
Por baixo dos panos, uma interseção de polígonos é uma operação booleana de conjuntos sobre dois anéis fechados: a saída mantém todo ponto que está dentro do Polígono A E dentro do Polígono B, e descarta o resto. Isso parece simples para duas formas convexas, mas limites administrativos reais, contornos de bacias hidrográficas e lotes de terra quase sempre são côncavos e frequentemente contêm buracos, então uma verdadeira ferramenta de verificação de sobreposição topológica GIS precisa de um algoritmo que trate corretamente formas de polígono arbitrárias, não apenas polígonos convexos simples.
Os primeiros algoritmos de recorte não conseguiam fazer isso de forma confiável. Sutherland–Hodgman (1974) só produz resultados corretos quando o polígono de recorte é convexo, o que exclui a maior parte dos dados reais de mapas. Weiler–Atherton (1977) melhorou isso percorrendo os contornos de ambos os polígonos e alternando entre eles a cada ponto de interseção, tratando corretamente formas côncavas e múltiplas peças de saída, mas com dificuldades em certos casos degenerados, como bordas compartilhadas ou anéis que se tocam. O algoritmo de Vatti (1992) generalizou ainda mais o recorte usando uma tabela de bordas ativas em varredura por linhas horizontais, e se tornou a base de bibliotecas de recorte amplamente usadas, como o Clipper de Angus Johnson.
A Abordagem de Linha de Varredura (Sweep-Line) Usada por Esta Ferramenta
- Construir uma fila de eventos: Cada vértice e cada extremidade de borda de ambos os polígonos é reunido em uma fila e ordenado da esquerda para a direita pela coordenada X.
- Varrer com uma linha vertical: Uma linha imaginária percorre a fila da esquerda para a direita, enquanto uma estrutura de estado rastreia quais bordas do Polígono A e do Polígono B estão ativas naquela posição X.
- Detectar cruzamentos de bordas: Sempre que uma borda de A cruza uma borda de B, a varredura calcula o ponto de interseção exato e divide ambas as bordas ali — esse é o núcleo matemático da análise de sobreposição espacial.
- Classificar cada segmento: Usando regras de enrolamento (winding rules), cada segmento de borda resultante é rotulado como dentro ou fora do outro polígono, de modo que apenas os segmentos dentro de A E de B sejam mantidos.
- Reconstruir os anéis de saída: Os segmentos mantidos são recombinados em anéis fechados, tratando corretamente em uma única passagem múltiplas áreas de sobreposição separadas e buracos.
O motor desta ferramenta implementa um algoritmo booleano de linha de varredura no estilo Martinez–Rueda, que roda em aproximadamente O((n + k) log n) para n vértices de entrada e k cruzamentos, e é robusto contra os casos degenerados (bordas compartilhadas, vértices que se tocam, anéis autointersectantes) que quebram recortadores mais simples. Antes de rodar a varredura completa em cada par, a ferramenta também faz uma verificação prévia barata por caixa delimitadora, para que uma interseção de geoprocessamento GIS sobre dezenas de feições não perca tempo testando pares que claramente não podem se sobrepor.
Ferramentas de Geoprocessamento Relacionadas
Map tiles © OpenStreetMap contributors and CARTO, Esri (satellite). Intersection math powered by Turf.js. Shapefile parsing by shpjs. Map rendering by Leaflet. All drawing, file reading and intersection calculation is local — no data is uploaded to any server.
