isagro-map v2.0.3
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óriodist
.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.