ForHosting KIT · Viagens e geografia

Ponto em polígono

O ponto (1, 1) está dentro do retângulo com cantos (0, 0), (4, 0), (4, 3) e (0, 3): um raio lançado para a direita cruza o contorno uma vez, e um número ímpar significa dentro. Funciona em sentido horário ou anti-horário. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve

Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.

Um teste de ponto em polígono responde a uma pergunta básica de geometria computacional: dada uma localização de consulta e uma forma fechada definida por um anel ordenado de vértices, essa localização cai no interior da forma? Topografia, produtos de mapeamento, máscaras de colisão em jogos, geocercas de logística e laboratórios de geometria em sala de aula precisam da mesma resposta determinística em vez de um esboço à mão. Este verificador implementa o algoritmo clássico de ray casting par-ímpar em coordenadas planas: um semi-raio horizontal é lançado do ponto de teste em direção ao infinito positivo, cada aresta do polígono é testada quanto a um cruzamento próprio, e a paridade da contagem de cruzamentos decide dentro versus fora. Pontos que caem exatamente sobre uma aresta ou vértice são tratados como dentro e sinalizados com um marcador de contorno para que consumidores de conjunto fechado não precisem de uma segunda passagem. O polígono é fechado implicitamente — você não precisa repetir o primeiro vértice no final — e os vértices podem ser fornecidos como objetos com campos x e y ou como arrays de dois elementos. Quando menos de três vértices são fornecidos a requisição falha com erro claro de validação, porque um polígono precisa de pelo menos um triângulo.

Como funciona o teste de ray casting par-ímpar

Comece com um ponto de consulta finito com coordenadas x e y e uma lista ordenada de pelo menos três vértices planos que formam um polígono simples fechado quando vértices consecutivos são conectados e o último se une ao primeiro. O algoritmo não exige ordem horária ou anti-horária; ambas as orientações são válidas sob a regra par-ímpar. Do ponto de consulta, imagine um raio horizontal que viaja apenas para a direita, nunca para a esquerda.

Percorra cada aresta do polígono e decida se essa aresta cruza o raio. Arestas horizontais são ignoradas para não criar contagens duplas ambíguas. Quando uma aresta monta a altura do raio — um extremo estritamente acima do y de consulta e o outro não — a x exata da interseção é calculada com um parâmetro linear ao longo da aresta.

Se a x de consulta fica estritamente à esquerda dessa interseção, a aresta contribui com um cruzamento; se a interseção coincide com a consulta dentro de uma tolerância numérica minúscula, o ponto é classificado como sobre o contorno. Após processar todas as arestas, contagem ímpar de cruzamentos significa dentro e contagem par significa fora, o argumento clássico de paridade da curva de Jordan especializado a um raio horizontal. Coordenadas devem ser finitas; NaN e Infinity são rejeitados.

Onde checagens de ponto em polígono aparecem no trabalho real

Produtos de logística e entrega perguntam se um fix GPS de entregador cai dentro de um polígono de bairro antes de oferecer uma tarifa por zona, e precisam de uma resposta determinística que não derive entre a prévia do mapa no navegador e o servidor. Jogos e mídia interativa usam máscaras de colisão alinhadas a eixos ou de forma livre definidas como anéis de vértices e testam posições de jogador ou projétil a cada quadro sem puxar um stack GIS pesado.

Módulos de geometria computacional em sala ensinam ray casting, a intuição do teorema da curva de Jordan e casos-limite de ponto flutuante; um único oráculo confiável que devolve tanto a flag inside quanto a contagem bruta de cruzamentos ajuda alunos a verificar lições passo a passo. Ferramentas de planejamento urbano e cadastrais classificam pontos de amostra contra pegadas de edifícios ou polígonos de zoneamento em revisões de projeto iniciais quando bases de topologia completas ainda não estão conectadas.

Se mais tarde você precisar de perímetro de polígono, área de polígono, geodésia de grande círculo, buracos multipolígono com a regra de winding não nulo ou contenção esférica no elipsoide WGS84, trate-os como intenções de busca e landings separados em vez de sobrecarregar esta página do verificador plano de ponto em polígono.

Adesão a geocerca para logística

Classifique pontos GPS ou de clique no mapa contra zonas de entrega e polígonos de bairro com flag inside determinística compartilhada por prévias do navegador e precificação do backend.

Teste de acerto em jogos e UI

Teste se um cursor, jogador ou projétil está dentro de uma máscara poligonal de forma livre sem importar uma biblioteca GIS completa no cliente.

Que algoritmo este verificador de ponto em polígono usa?

Ray casting par-ímpar: um semi-raio horizontal a partir do ponto de consulta conta cruzamentos com arestas do polígono; ímpar significa dentro, par significa fora.

O que acontece se o polígono tiver menos de três vértices?

Um polígono precisa de pelo menos três vértices; um segmento ou ponto único não é um anel válido para contenção.

A ordem dos vértices importa (horário vs anti-horário)?

Qualquer orientação funciona sob a regra par-ímpar. A ordem ainda deve ser sequencial ao redor do contorno; embaralhar vértices produz uma forma diferente (geralmente autointersecante).

Quanto custa?

A ferramenta do navegador é grátis e roda localmente.

E se o ponto cair exatamente na borda?

Um ponto exatamente sobre um lado ou um vértice conta como dentro, e o resultado também indica que ele está no limite. Assim, um marcador colocado na linha da cerca é considerado incluído.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/geo/point-in-polygon

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/geo/point-in-polygon \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"x":1,"y":1,"polygon":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}'
{
  "x": 1,
  "y": 1,
  "polygon": [
    {
      "x": 0,
      "y": 0
    },
    {
      "x": 4,
      "y": 0
    },
    {
      "x": 4,
      "y": 3
    },
    {
      "x": 0,
      "y": 3
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.point_in_polygon",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Como funciona o teste de ray casting par-ímpar

Impactos no contorno atalham para dentro com on_boundary verdadeiro para que marcadores desenhados na cerca contem como contidos. Todo o pipeline é aritmética de ponto flutuante determinística: sem sementes aleatórias, sem carimbos de tempo, sem chamadas de rede e sem deriva de modelo, de modo que entradas idênticas sempre produzem JSON idêntico. Anéis degenerados com menos de três vértices são rejeitados com invalid_input em vez de tratar silenciosamente um segmento como polígono.

O que você envia e o que recebe de volta

Envie o ponto de teste como campos numéricos obrigatórios x e y, e o polígono como array obrigatório no campo polygon com pelo menos três vértices. Objetos point aninhados opcionais são suportados para clientes que já empacotam a consulta como uma única estrutura. Quando o array polygon tem comprimento zero, um ou dois, a requisição falha com mensagem de que o teste de ponto em polígono precisa de pelo menos três vértices, para que quem chama possa corrigir a geometria em vez de adivinhar. Cada vértice pode ser um objeto com x e y ou um array de dois números; aliases vertices e points também são aceitos para o anel. Campos ausentes, strings não numéricas, NaN e Infinity falham com invalid_input e não são cobrados. Em sucesso a resposta inclui inside como booleano, on_boundary como booleano, um objeto point limpo, o array polygon limpo, n como contagem de vértices, crossings como o inteiro de cruzamentos raio-aresta usado pelo teste de paridade, method definido como ray_casting e rule como even_odd. Checagens típicas de fumaça incluem um quadrado unitário com consulta em um vírgula um que está dentro, uma consulta longe fora do quadrado que está fora, e um triângulo com um ponto sobre um lado que está dentro com on_boundary verdadeiro. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.

Onde checagens de ponto em polígono aparecem no trabalho real

Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e validação falha não consome saldo.

Geometria computacional em sala de aula

Demonstre ray casting, paridade e casos-limite de contorno com JSON estável que inclui contagens de cruzamentos para verificação passo a passo.

Pontos na aresta contam como dentro?

Sim. Se a consulta cai sobre uma aresta ou vértice dentro de uma tolerância numérica minúscula, inside é verdadeiro e on_boundary é verdadeiro.

Ver a documentação completa do KIT →