2.0.3 • Published 3 months ago

isagro-map v2.0.3

Weekly downloads
-
License
-
Repository
github
Last release
3 months ago

ISAgro-Map

Repositório para o componente de Mapa do projeto ISAGRO Dashboards.

Sumário

O componente isagro-map é baseado na biblioteca OpenLayers. Ele é projetado para requisitar dados do servidor de mapas do IBGE e exibir o mapa do Brasil e suas regiões. O componente permite a seleção de estados e, ao selecionar um estado, o mapa exibe a região correspondente.

Requisitos do Componente Mapa

  • Exibir inicialmente o Brasil ou recuperar a visualização da sessão anterior.
  • Ao selecionar o código IBGE no seletor, exibir a região correspondente no mapa.
  • Adicionar um seletor com auto-complete (digitação) para estados (códigos IBGE).
  • O mapa deve poder ser posicionado por eventos externos, como controlar o mapa via eventos externos.
  • Utilizar WMS (preferencialmente), referência: https://www.sentinel-hub.com/develop/integrate/onlinegis/#web.
  • O componente deve ser distribuído como um pacote NPM através deste repositório.

Anatomia do Componente Mapa

O componente observa a posição para atualizar uma variável position, que deve ser exposta na declaração do próprio componente. Todos os demais parâmetros são informados por um atributo config, que deve ser um objeto único, definido com uma interface.

Parâmetros Esperados

interface iEstado {
  bbox: [number, number, number, number];
  zoom: number;
  center: [number, number];
}

interface MapProps {
  estado: iEstado;
  width: number;
  height: number;
  version?: string;
  request?: string;
  srs?: string;
  layers?: string;
  format?: string;
  transparent?: boolean;
  bgcolor?: string;
  coordinateOnClick: (coordinate: Array<number>) => void;
  onZoomChange?: (zoom: number) => void;
  onBboxChange?: (bbox: Array<number>) => void;
  onCenterChange?: (center: Array<number>) => void;
}

Exemplo de Uso

const estadoSelecionado: iEstado = {
  bbox: [-53.4, -25.3, -44.2, -19.7],
  zoom: 6.8,
  center: [-48.8, -22.5]
};

<Map 
  estado={estadoSelecionado}
  width={758}
  height={698}
  coordinateOnClick={(coordinate) => console.log('Coordenada clicada:', coordinate)}
  onZoomChange={(zoom) => console.log('Nível de zoom:', zoom)}
  onBboxChange={(bbox) => console.log('BBox:', bbox)}
  onCenterChange={(center) => console.log('Centro do mapa:', center)}
/>

Requisição Esperada

Abaixo está um exemplo de requisição WMS:

Resumo

URL: https://geoservicos.ibge.gov.br/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-73.6319866139999703591457,-32.6441463967387832667555,-34.7928849718691139969451,3.09228646100007198427306&WIDTH=758&HEIGHT=698&LAYERS=CCAR:BCIM_Unidade_Federacao_A&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE Status: 200 OK

Parâmetros da Query String

  • SERVICE=WMS
  • VERSION=1.1.1
  • REQUEST=GetMap
  • SRS=EPSG:4326
  • BBOX=-73.6319866139999703591457,-32.6441463967387832667555,-34.7928849718691139969451,3.09228646100007198427306
  • WIDTH=758
  • HEIGHT=698
  • LAYERS=CCAR:BCIM_Unidade_Federacao_A
  • FORMAT=image/png
  • BGCOLOR=0xFEFFFF
  • TRANSPARENT=TRUE

Publicação

Este componente deve ser distribuído como um pacote NPM através deste repositório. Utilize os seguintes scripts para gerenciar versões e publicações:

Scripts

  • npm run build - Compila o código TypeScript e copia arquivos necessários para o diretório dist.
  • npm run publish:patch - Publica uma nova versão patch do pacote.
  • npm run publish:minor - Publica uma nova versão minor do pacote.
  • npm run publish:major - Publica uma nova versão major do pacote.

Contato

Para mais informações ou dúvidas, entre em contato com a equipe de desenvolvimento.


Este repositório faz parte do projeto ISAGRO Dashboards.