1001Ferramentas
🗺️Geradores

Gerador de Coordenadas GPS

Sorteia coordenadas (latitude/longitude) dentro de uma caixa delimitadora (bbox). Útil para testes de mapas.


  

Gerador de coordenadas por bounding box e fluxos geoespaciais

Essa variante do gerador de coordenadas aleatórias permite fixar a saída em um bounding box arbitrário — quatro números (latMin, latMax, lngMin, lngMax) que descrevem um retângulo no globo. O padrão cobre a região metropolitana de São Paulo. Bounding boxes são o filtro mais barato em qualquer pipeline geoespacial: o teste é O(1) e pré-filtra um conjunto grande antes de checagens mais caras de "ponto em polígono".

Geocodificação e geocodificação reversa

Coordenadas aleatórias se encaixam naturalmente em duas operações cotidianas de GIS:

  • Geocodificação — transforma um endereço ("Av. Paulista, 1000") em lat/lng. Provedores comuns: Nominatim (OpenStreetMap, grátis), Google Maps Geocoding API, Mapbox e stacks brasileiros como ViaCEP+georreferenciamento.
  • Geocodificação reversa — volta de lat/lng para endereço ou unidade administrativa. Útil para enriquecer pontos aleatórios com nomes de rua mock durante seed de testes.

De bounding box a polígono: ray casting

Um bounding box sempre contém mais área que o polígono que cerca — o bbox do Brasil cobre pedaços do Peru, Colômbia e Atlântico. Para restringir pontos ao contorno real, use ray casting: gere um candidato no bbox, dispare um raio horizontal, conte arestas do polígono cruzadas; contagem ímpar = dentro, par = fora. Rejeite candidatos fora do polígono e re-amostre. Os polígonos vêm de datasets abertos:

  • Natural Earth — polígonos de país e admin-1 nas escalas 1:10m, 1:50m, 1:110m.
  • IBGE Malhas — estados e municípios brasileiros em shapefile ou GeoJSON.
  • OpenStreetMap via API Overpass — regiões arbitrárias por tag (parques, bairros, água).

Índices espaciais: geohash, H3, S2

Em datasets grandes você quer indexar pontos para consultas de vizinhança serem rápidas. Três esquemas populares:

  • Geohash — codifica lat+lng em uma string base32; quanto mais longa, mais fina a célula. 5 chars ≈ 5 km, 6 chars ≈ 1 km, 7 chars ≈ 150 m, 8 chars ≈ 19 m. Células encolhem em direção aos polos.
  • H3 (Uber) — grid hexagonal hierárquico. Hexágonos têm simetria de vizinhança uniforme (cada vizinho está a exatamente uma aresta), o que supera geohash para queries por raio e roteamento.
  • S2 (Google) — quad-tree na esfera. Usado por Google Maps, Foursquare e funções geo do InfluxDB.

Uniforme aleatório não é realista — populações não são uniformes

Um ponto uniforme dentro do bbox do Brasil tem a mesma chance de cair na floresta amazônica e no centro de São Paulo — mas a cidade abriga milhões e o pixel da floresta abriga zero gente. Para mock data realista, pondere o sorteio por densidade populacional. Datasets gratuitos:

  • WorldPop — rasters de população a 100 m por país e ano.
  • GHSL (Global Human Settlement Layer) — rasters de assentamento e área construída do JRC.
  • Facebook High Resolution Population Density — grids de 30 m derivados de imagens de satélite.

Para sortear um ponto ponderado por população, trate o raster como distribuição 2D de probabilidade: amostre um pixel proporcionalmente ao valor, depois sorteie um ponto uniforme dentro do pixel.

Precisão de GPS no mundo real

Um GPS de smartphone a céu aberto entrega ±3-10 m. Em ambiente interno ou cânions urbanos densos, o erro sobe para ±50 m ou pior — Wi-Fi positioning e triangulação de torre passam a bater o GPS. RTK GNSS de topografia chega a 1-2 cm após correção de fase de portadora. A saída deste gerador usa 4-6 casas; essa resolução é mais fina do que qualquer GPS de consumidor consegue garantir, então não interprete os dígitos finais como "milímetros de verdade".

Perguntas frequentes

Posso restringir pontos a um país específico? O bounding box já leva você quase lá — use um bbox bem ajustado ao território. Para pontos só dentro do polígono (sem vazar para países vizinhos), combine o bbox com ray casting contra um polígono de país do Natural Earth ou IBGE.

Os pontos vão evitar o oceano? Não por padrão — um bbox sobre o Brasil vai produzir alguns pontos atlânticos. É preciso um raster máscara de terra/água (ex.: Natural Earth ne_10m_land) e uma etapa de rejeição para filtrar acertos no mar.

Posso gerar pontos que imitem tráfego real? Saída uniforme não faz isso. Misture com densidade populacional (WorldPop) para realismo, ou semeie a partir de POIs reais do OSM se quer locais de negócio plausíveis.

Como esta variante difere do gerador mundial? A outra variante expõe regiões pré-definidas (mundo / Brasil / Portugal / EUA); esta deixa você especificar qualquer retângulo. Use esta quando o alvo é cidade, bairro ou área de pesquisa arbitrária; use a variante preset para amostragem cross-country.

Ferramentas Relacionadas