---
name: gis-mapping-applications
description: Construção de aplicações de mapas e geoprocessamento — stack GIS (QGIS, PostGIS, pgRouting, GeoServer, Leaflet, Three.js), fontes públicas de dados geoespaciais (Brasil e mundo), verticais de produto com modelo de negócio, sensoriamento distribuído via frotas (Uber, caminhões, ônibus), e monetização de dados geo.
---

# GIS & Mapping Applications

Padrões e fontes para construir plataformas de mapa que agregam dados geoespaciais públicos.

## Stack típica

| Camada | Opção | Prós |
|---|---|---|
| Mapa frontend | **Leaflet.js** | Leve, WMS nativo, bom pra mobile |
| | OpenLayers | Mais poderoso (WFS, edição, projeções) |
| Base tiles | OpenStreetMap (gratuito) ou Mapbox (pago) | |
| Proxy backend | **Node.js** (Express/Fastify) | Cache de tiles WMS, contornar CORS |
| Cache | Redis ou SQLite (tiles em disco) | Acelera servidores públicos lentos |

## WMS vs WCS vs WFS

| Protocolo | O que retorna | Uso |
|---|---|---|
| **WMS** (Web Map Service) | Imagem renderizada (PNG/JPEG) | Visualização de mapas |
| **WCS** (Web Coverage Service) | Dados raster brutos (GeoTIFF) | Análise, classificação |
| **WFS** (Web Feature Service) | Dados vetoriais (GeoJSON/GML) | Edição, query |

## Endpoint WMS genérico (OWS)

Quase todo GeoServer expõe WMS via:
```
{base_url}/geoserver/ows?service=WMS&request=GetCapabilities
```
Ou diretamente:
```
{base_url}/geoserver/wms?service=WMS&request=GetCapabilities
```

## Arquitetura de agregador

```
[Browser/App]
    ↓
[Proxy Node.js com cache LRU]
    ↓
[Servidores WMS públicos] ← cache de tiles em disco evita banimento
```

- **Problema**: servidores públicos brasileiros são lentos e instáveis
- **Solução**: cache agressivo (tile expiry ~24h), fallback entre servidores, retry com backoff
- **CORS**: muitos servidores não enviam CORS headers; o proxy resolve

## Verticais de Produto

Dados geoespaciais públicos + stack GIS + sensoriamento distribuído = plataforma de produtos verticais:

| # | Produto | Cliente | Dados Públicos-Chave |
|---|---|---|---|
| 1 | ⚡ **PoleInspector** — Gestão de Postes & Fiscalização | Distribuidoras, Teles, ANATEL, Prefeituras | **Resolução Conjunta ANEEL/ANATEL nº 4/2014 + Resolução ANATEL nº 683/2017 + Portaria MCOM/MME nº 10.563/2023 ("Poste Legal")** — NÃO usar "Res 717/2019" (é RQUAL, não poste). Concorrentes REAIS: M3E, Cellere, Fu2re (SmartAssets), Copel (vertical interna). Valor de referência: R$ 5,84/ponto. 53M postes no Brasil. Mapillary API, Street View. |
| 2 | 🚦 **AutoVision** — Multas com Evidência Geo | Prefeituras, CET, Detran | **Art. 280 §2º CTB + Res. CONTRAN 909/2022 + Súmula 127 STJ + INMETRO SAnMFT (Portaria 492/2021)**. Concorrentes: Areatec, Pumatronix. AutoVision usa VLM (não só OCR). | |
| 3 | 🎫 **TicketGeo** — Sistema de Gestão de Chamados (FSM) | Elevadores, ISPs, Assistência Técnica | pgRouting TSP, alocação geo, rota do dia. **11.853 ISPs no Brasil (NIC.br 2024). 7.100 empresas de elevadores.** Concorrentes: Salesforce FS ($55-230/user/mês), ServiceNow FSM, GLPI, IBM Maximo FSM, Sigga. |
| 4 | 🌳 **APAss** — Monitoramento Ambiental, Territorial & Urbano — APAs + Invasões de Terrenos + Construções Irregulares + Ocupações. Change detection com Sentinel-2 (5 dias) cruza com cadastro (SIGEF/INCRA/CAR/zoneamento) e gera alerta automático | ICMBio, IBAMA, Prefeituras, MPF, Cartórios, Seguradoras | INPE DETER/PRODES/Queimadas, ICMBio, FUNAI, CAR, Siscom, Sentinel-2, Landsat, CBERS-4A, SIGEF/INCRA, SNIRH/ANA |
| 5 | 👁️ **X9** — Denúncias Cidadãs (ex-Dedo Duro) | Prefeituras, Órgãos públicos | Siscom (IBAMA), integração TicketGeo |
| 6 | 📍 **Me Segue** — Localizador de Foodtrucks & Artesãos | Foodtrucks, artesãos, prefeituras | Mapa para cliente final, coleta passiva |
| 7 | 🎮 **Vigia** — Gamificação Urbana (Niantic-style) | Cidadãos, Prefeituras, Patrocinadores B2B | X9 + TicketGeo para verificação crowdsourced |
| 8 | 🛣️ **Obras & Manutenção de Vias** | Empresas de serviços rodoviários | DNIT (rodovias), IBGE (malha municipal) |
| 9 | 🔌 **Inventário de Redes** (elétrica/fibra/água/gás) | Concessionárias (CPFL, Enel, Sabesp, Vivo) | ANATEL, ANP GeoHub, SNIRH/ANA |
| 10 | 📊 **Marketplace de Dados Geo** — Imagens licenciáveis | Google, Mapillary, Seguradoras | Coleção própria de imagens 360° |
| 11 | 🏪 **MarketIntel** — Base de Empresas Categorizadas com Inteligência Geo | Franquias, corretores, varejo, distribuidores, incorporadoras, forças de vendas B2B | **Base RFB Dados Abertos** (50M+ CNPJs: razão social, endereço, CNAE, porte, QSA). **Geocodificação: Google Geocoding API + cache SQLite** (ver estratégia abaixo). Pipeline de ingestão mensal (DuckDB/Python). Casos de uso: densidade comercial, site selection, prospecção B2B geo, análise de ancoragem, validação de fachada via Coleta Virtual (Mapillary/Street View). Concorrentes: Econodata/DataHub, Geofusion, Google Places API. Pricing: Grátis/R$ 499 Pro/R$ 2k+ Enterprise. TAM R$ 8B. |

## Coleta Virtual (Virtual Survey) — Dados Existentes, Análise Imediata

Antes de qualquer coleta física, fazer o **levantamento virtual** usando plataformas que já possuem imagens de rua. Reduz o custo do MVP a zero e acelera a geração da base.

### Pipeline de Coleta Virtual

```
1. Definir bounding box (ex: bairro de SP)
2. Baixar malha viária do OpenStreetMap (overpass-api ou osm2pgsql)
3. Para cada rua, buscar frame mais recente na Mapillary API:
   GET https://graph.mapillary.com/images?bbox=LON_MIN,LAT_MIN,LON_MAX,LAT_MAX
4. Se Mapillary não tem cobertura recente → Google Street View Static API
5. Rodar YOLOv11 + SAM em cada frame
   → Detecta postes, cabos, buracos, placas, faixas, veículos
6. Georreferenciar cada detecção (EXIF GPS + heading da câmera)
7. Popula PostGIS — base pronta sem sair de casa
```

### Fontes para Coleta Virtual

| Fonte | Tipo | Cobertura | Custo | Limitação |
|---|---|---|---|---|
| **🐝 Bee Maps** | API comercial descentralizada | 37% das estradas globais (✅ BR) | ~$0.005/img ($20 grátis) | Pago, mas mais recente que as gratuitas |
| **Mapillary API** | Imagens crowdsourced (Meta) | 2.4B+ imagens globais, boa cobertura urbana BR | Gratuito (rate limit) | Depende de contribuição local |
| **Google Street View Static API** | Imagens oficiais Google | 250B+ imagens, cobertura quase total BR | USD 0.007/foto (free tier: 28k/mês) | Imagens podem ter 1-3 anos |
| **KartaView (ex-OpenStreetCam)** | Imagens crowdsourced OSM | Global, cobertura BR média | API gratuita (100 req/h) | Menos contribuidores que Mapillary |
| **Panoramax** | Open-source, STAC API | Europa + Brasil (crescente) | Gratuito (CC Zero) | Cobertura BR limitada |
| **Mapilio** | AI-first street imagery | Global emergente | API gratuita + CLI Python | Comunidade menor |
| **Global Streetscapes** | Dataset 10M imagens, 688 cidades (✅ BR) | HuggingFace | CC BY 4.0 (download bulk) | Dataset fixo (2024) |
| **4DView (BR)** | Serviço BR mapeamento 360° + IA | 🇧🇷 Exclusivo Brasil | Serviço contratado | Sem API pública, parceiro potencial |
| **Yandex Panoramas** | Imagens oficiais Yandex | Rússia + algumas globais | API Yandex | Cobertura BR baixa |
| **HERE Street-level** | Imagens veiculares | Global (BR baixo) | API HERE paga | Custo |
| **OpenStreetMap (OSM)** | Malha viária + tags | Mundial, atualização contínua | Gratuito | Precisa de pós-processo |

Pipeline priority: Bee Maps (burst, mais recente) → Mapillary (2ª opção gratuita) → Street View (cobertura máxima) → KartaView → Panoramax → secundárias.  
Lib Python `streetlevel` unifica acesso a Naver, Tencent e outras fontes asiáticas.

### Quando usar Virtual vs. Físico

| Cenário | Abordagem | Motivo |
|---|---|---|
| MVP / Prova de conceito | Virtual 100% | Custo zero, uma semana gera base |
| Cobertura inicial de cidade | Virtual + 10% verificação em campo | Virtual cobre 90% com qualidade |
| Refresh frequente (< 30 dias) | Física (câmera embarcada) | Mapillary/Street View desatualizados |
| Áreas remotas sem cobertura | Física | Virtual não cobre |

## Processamento Local (Mac Mini M4 + MLX)

Setup recomendado para rodar o pipeline de IA localmente durante POCs, sem depender de cloud:

**Hardware**: Mac Mini M4 (16GB unified memory) — 1 ou 2 unidades em paralelo.

**Pipeline de inferência local**:

```
Frame da rua
  │
  ▼
YOLOv11m (MPS/CoreML) → 200ms/frame → detecta postes, cabos, buracos (99% dos frames)
  │ se bordoso
  ▼
VLM verificador (MLX):
  - Qwen2-VL-7B Q4 (~5.5GB RAM, ~5s/frame) — melhor custo-benefício
  - MolmoPoint8B Q4 (~6GB RAM, ~5-10s/frame) — excelente em apontamento/detecção
  - LLaVA-NeXT-7B Q4 (~5GB RAM) — alternativa clássica
Florence-2-large (~2GB RAM) — alternativa leve sem LLM completo
```

**Resultado**: ~14.000 frames/hora por Mac Mini. Um bairro de 50km de vias (1 frame/5m = 10.000 frames) processado em ~45 min.

**Setup software**:
```bash
pip install mlx-lm mlx-vlm ultralytics torch torchvision
yolo predict model=yolo11m.pt source=frame.jpg device=mps
mlx_lm.generate \
  --model Qwen/Qwen2-VL-7B-Instruct-4bit \
  --prompt "Descreva o poste nesta imagem. Material? Condição? Cabos?" \
  --image frame.jpg
```

Alternativa via Ollama:
```bash
ollama pull qwen2-vl:7b-instruct-q4_K_M
ollama run qwen2-vl:7b-instruct --verbose
```

## Modelo de Sensoriamento Distribuído (Frotas como Sensores)

Substitui carro dedicado (Google Street View: ~USD 50k/veículo) por sensores embarcados em frotas que **já rodam as rotas**:

| Frota | Cobertura | Hardware Sugerido | Custo/Veículo |
|---|---|---|---|
| 🚛 **Caminhões** (transportadoras) | Rodovias, longa distância | Insta360 X4 + Raspberry Pi 5 + SSD + GPS | ~R$ 5-8k |
| 🚌 **Ônibus** (viações) | Vias principais, trechos intermunicipais | Insta360 X4 + Pi Zero 2W + SSD | ~R$ 3-5k |
| 🚗 **Uber/99** (motoristas parceiros) | Ruas, bairros, centro | Dashcam 360° + Pi Zero + SD 256GB | ~R$ 3k |
| 🏍️ **Motoboys / entregadores** | Vielas, becos, acesso restrito | Câmera capacete + módulo GPS | ~R$ 1k |
| 🚲 **Ciclistas** (Mapillary) | Ciclovias, parques | App Mapillary (zero custo) | R$ 0 |
| 🍔 **Foodtrucks Premium** (plano R$ 99/mês) | Pontos fixos prolongados | Insta360 + Pi + SSD (sensor estacionário) | ~R$ 3k |

### Pipeline de Dados

```
[Veículo] → [WiFi na garagem] → [Pipeline de frames georreferenciados]
    ↓                               ↓
    Visão Computacional (YOLOv11/SAM) → Detecção postes, buracos, placas, faixas
    ↓
    PostGIS → cruza com camadas públicas (ST_Intersects, ST_DWithin)
    ↓
    GeoServer WMS/WFS → Leaflet.js + Three.js (visualização)
    ↓
    Abre chamado, gera multa ou relatório conforme vertical
```

## Vigia — Gamificação Urbana (Produto #7)

Inspirado na Niantic (Pokémon GO, Ingress), transforma cidadãos em **verificadores de campo**. 
Denúncias duvidosas e "problemas corrigidos" viram **missões** no mapa.

### Fluxo
```
X9 Denuncia → Sistema cria missão de verificação → Jogador vê no mapa → Vai até o local → 
Tira foto → IA confirma (real/resolvido) → Recompensa (XP, selos, patrocínios)
```

### Mecânica de jogo
- **Missões no mapa**: cores indicam status (nova, em andamento, confirmada, resolvida, duvidosa)
- **Níveis**: Bronze (10) → Prata (50) → Ouro (200) → Diamante (500) → Lendário (1000+)
- **Streak**: 2x XP na primeira do dia, streak de 7/30 dias com bônus
- **Selos**: Primeiro a Verificar, Bairro Limpo, Coruja, Precisão Cirúrgica, Zelador Digital
- **Times**: por bairro/região, ranking semanal, evento mensal "Caça ao Fantasma" (XP triplo 48h)

### Anti-Fake
- Denúncias com baixa confiança (conta nova, sem histórico, sem foto) → missão prioritária
- 3 verificadores diferentes confirmam = validação
- Se inconsistente → denúncia suspensa, notificador perde reputação

### Monetização
| Fonte | Valor | Modelo |
|---|---|---|
| Patrocínio de missões (Prefeituras, empresas) | R$ 0,50-2,00/missão | Cobrado por missão gerada + verificada |
| Premium Vigia (XP dobrado, selos, skins) | R$ 9,90/mês | Assinatura |
| Dataset agrupado anônimo | R$ 10k+/lote | Venda bulk |

### Ciclo Virtuoso
O jogador verifica denúncias + coleta imagens atualizadas + coleta dados urbanos passivamente = todos os produtos alimentados a custo zero.

## Correlação Entre os Produtos

```
📍 Me Segue + 🚛 Coleta: foodtruck coleta dados urbanos enquanto vende
👁️ X9 → 📋 Reclame Aqui Geo: tracking público
🎫 TicketGeo → 🛣️ Obras: ticket vira ordem geo
👁️ X9 → 📍 Me Segue: denúncia de foodtruck em local proibido
🎮 Vigia → 👁️ X9: missão de verificação de denúncia
🎮 Vigia → 🚦 AutoVision: missão de verificação de multa
🎮 Vigia → 🎫 TicketGeo: verificação de ticket resolvido
```

## Estratégia de Monetização

| Modelo | Como funciona | Ticket típico |
|---|---|---|
| **SaaS mensal** | Assinatura por módulo + km monitorado | R$ 5-50k/mês |
| **Participação em multas** | % sobre valor de multas geradas (30-50%) | Variável alto |
| **Licenciamento de imagens** | Venda de frames georreferenciados avulsos | USD 0.01-0.05/foto |
| **Concessão pública** | Sem custo upfront pra prefeitura, % da receita | R$ 500k-5M/ano |
| **Marketplace de dados** | Plataforma conectando sensores (frotas) com compradores | Comissão 15-30% |

## Diferencial Competitivo

1. **Custo marginal zero de coleta** — frota já roda, sensor é passageiro
2. **Frequência inatingível** — Google Street View: 3-5 anos. Sua coleta: 2-7 dias (depende da frota)
3. **Múltiplos produtos do mesmo dado** — uma passada de câmera alimenta postes + multas + APAs + venda de imagem
4. **Sem funcionários dedicados** — motoristas são parceiros, não CLT
5. **Dado público como fundação** — INPE, ICMBio, IBGE, FUNAI, ANA = credibilidade e custo zero
6. **Coleta Virtual primeiro** — Mapillary + OSM + Street View gera base de dados em 1 semana sem sair de casa

## Coleta Virtual = MVP por R$ 200 — Roadmap

A principal sacada desta plataforma: **não precisa comprar câmera nem contratar frota pra começar**. A coleta virtual (Bee Maps + Mapillary + Street View + Sentinel-2) gera dados reais de qualquer bairro em 1 semana com custo de ~R$ 200 (APIs).

### Fases

| Fase | Duração | Investimento | Estratégia |
|---|---|---|---|
| **Fase 0 — Virtual Sprint** | 30 dias | ~R$ 200 | Apenas dados existentes (Bee Maps, Mapillary, Street View, Sentinel-2). Pipeline YOLOv11 + SAM nos Mac Mini M4. Todos os produtos com dados reais sem hardware. |
| **Fase 1 — Validação** | 60 dias | R$ 2-5k | Expandir cobertura virtual. Primeiro cliente pagante com dados 100% virtuais. Parceiros usam o próprio carro + app. |
| **Fase 2 — Produto** | 90 dias | R$ 20-30k | Todos os produtos integrados. Primeiros kits de câmera para parceiros que não têm. Receita bancando expansão. |
| **Fase 3 — Escala** | 180 dias | R$ 80-150k (bancado pela receita) | Expansão nacional. 100+ veículos, 500+ foodtrucks Premium, 15+ clientes enterprise. |

Regra: **coleta física só acontece quando a receita já está entrando** e o virtual não cobre (refresh frequente, áreas remotas).

## Estratégia de Geocodificação para Base CNPJ (MarketIntel)

**⚠️ Pitfall:** NÃO usar Nominatim/OSM para geocodificar endereços brasileiros. A qualidade é inconsistente — cobertura irregular em cidades pequenas, formato de endereço BR não padronizado, CEPs que não batem com logradouro. O usuário já testou e rejeitou.

**Estratégia correta: Google Geocoding API + cache SQLite.**

### Por que funciona financeiramente

A base RFB tem 50M de CNPJs, mas **endereços se repetem muito** (prédios comerciais, coworkings, filiais, empresas inativas, matriz e filial no mesmo local). Realista: **~5-8M de endereços únicos** para geocodificar.

| Etapa | Volume | Custo |
|---|---|---|
| Deduplica endereços | 50M → ~8M únicos | R$ 0 |
| Cache SQLite (hit rate ~70%) | 8M → 2.4M novos | R$ 0 |
| Google Geocoding (one-time) | 2.4M × $5/1k | **R$ 12.000** |
| Atualização mensal (novos CNPJs) | ~50k/mês | **R$ 250/mês** |

**Break-even:** 1 cliente Pro (R$ 499/mês) cobre o custo mensal. O investimento inicial de R$ 12k se paga nos primeiros 24 clientes.

### Comparação Google vs Alternativas

| API | Custo 8M endereços | Precisão Brasil |
|---|---|---|
| **Google Geocoding** | **R$ 12.000** ✅ | ⭐⭐⭐⭐⭐ Porta exata, 100% CEPs |
| HERE Maps | R$ 8.000 | ⭐⭐⭐⭐ Perde em zonas rurais |
| Mapbox | R$ 25.000 | ⭐⭐⭐⭐ Cache vitalício ok |
| GraphHopper | R$ 3.500 | ⭐⭐⭐½ Custo-benefício |
| Nominatim (self-hosted) | R$ 0 | ⭐⭐ NÃO usar para BR |

**Regra:** pague Google UMA vez, faça cache eterno (SQLite), e só pague pelos endereços novos nas atualizações mensais.

## Ver também
- `references/brazil-public-geo-endpoints.md` — catálogo completo de servidores brasileiros
- `references/worldwide-public-geo-endpoints.md` — fontes globais (NASA, USGS, etc.)
- `references/geo-product-biz.md` — detalhamento de verticais de produto, modelo de negócio e pricing
- `references/project-showcase.html` — pitch deck HTML completo (deck original com 10 produtos + visão GLM expandida com 14 produtos), diagramas SVG, tabelas de fontes, gamificação, roadmap virtual-first (acessível em http://192.168.0.20:8080/geo-platform.html e .../geo-platform-visao-glm.html)
- `references/fontes-street-level-imagery.md` — pesquisa completa com 16 fontes de imagens de rua (cobertura, API, licenciamento)
- `references/geo-platform-research.md` — pesquisa aprofundada (Jul 2026): base legal (postes, multas, ambiental), concorrentes reais nomeados, VLMs compatíveis com MLX 16GB, dados de mercado FSM/isps/elevadores, Pokémon GO Brasil
