fix: expand meteorological stations list to include major Brazilian capitals/cities and sort alphabetically

This commit is contained in:
2026-07-10 14:46:22 +00:00
parent 892409cee3
commit 8722cf4c5e
2 changed files with 41 additions and 3 deletions
+40 -2
View File
@@ -76,6 +76,43 @@ export const METEOROLOGICAL_STATIONS: readonly MeteorologicalStation[] = [
{ id: 47, nome: 'Uruguaiana', latitude: '29°47S', longitude: '57°02W', altitude: 74, v0: 45 },
{ id: 48, nome: 'Vitória', latitude: '20°16S', longitude: '40°17W', altitude: 4, v0: 35 },
{ id: 49, nome: 'Vilhena', latitude: '12°44S', longitude: '60°08W', altitude: 652, v0: 30 },
{ id: 50, nome: 'Palmas (Capital)', latitude: '10°11S', longitude: '48°20W', altitude: 230, v0: 30 },
{ id: 51, nome: 'João Pessoa (Capital)', latitude: '07°07S', longitude: '34°53W', altitude: 45, v0: 30 },
{ id: 52, nome: 'Aracaju (Capital)', latitude: '10°55S', longitude: '37°04W', altitude: 4, v0: 30 },
{ id: 53, nome: 'Macapá (Capital)', latitude: '00°02N', longitude: '51°04W', altitude: 15, v0: 30 },
{ id: 54, nome: 'Joinville', latitude: '26°18S', longitude: '48°50W', altitude: 4, v0: 45 },
{ id: 55, nome: 'Blumenau', latitude: '26°55S', longitude: '49°03W', altitude: 21, v0: 45 },
{ id: 56, nome: 'Caxias do Sul', latitude: '29°10S', longitude: '51°10W', altitude: 817, v0: 45 },
{ id: 57, nome: 'Pelotas', latitude: '31°46S', longitude: '52°20W', altitude: 7, v0: 45 },
{ id: 58, nome: 'Maringá', latitude: '23°25S', longitude: '51°55W', altitude: 515, v0: 35 },
{ id: 59, nome: 'Ponta Grossa', latitude: '25°05S', longitude: '50°10W', altitude: 975, v0: 40 },
{ id: 60, nome: 'Cascavel', latitude: '24°57S', longitude: '53°27W', altitude: 781, v0: 40 },
{ id: 61, nome: 'Ribeirão Preto', latitude: '21°10S', longitude: '47°48W', altitude: 546, v0: 35 },
{ id: 62, nome: 'São José dos Campos', latitude: '23°11S', longitude: '45°53W', altitude: 660, v0: 35 },
{ id: 63, nome: 'Sorocaba', latitude: '23°30S', longitude: '47°27W', altitude: 601, v0: 35 },
{ id: 64, nome: 'Bauru', latitude: '22°19S', longitude: '49°04W', altitude: 526, v0: 35 },
{ id: 65, nome: 'São José do Rio Preto', latitude: '20°48S', longitude: '49°22W', altitude: 489, v0: 35 },
{ id: 66, nome: 'Juiz de Fora', latitude: '21°45S', longitude: '43°21W', altitude: 678, v0: 35 },
{ id: 67, nome: 'Montes Claros', latitude: '16°44S', longitude: '43°51W', altitude: 638, v0: 35 },
{ id: 68, nome: 'Feira de Santana', latitude: '12°16S', longitude: '38°58W', altitude: 234, v0: 35 },
{ id: 69, nome: 'Vitória da Conquista', latitude: '14°51S', longitude: '40°50W', altitude: 923, v0: 35 },
{ id: 70, nome: 'Campina Grande', latitude: '07°13S', longitude: '35°52W', altitude: 550, v0: 30 },
{ id: 71, nome: 'Caruaru', latitude: '08°16S', longitude: '35°58W', altitude: 554, v0: 30 },
{ id: 72, nome: 'Imperatriz', latitude: '05°31S', longitude: '47°29W', altitude: 95, v0: 30 },
{ id: 73, nome: 'Sobral', latitude: '03°41S', longitude: '40°20W', altitude: 70, v0: 30 },
{ id: 74, nome: 'Juazeiro do Norte', latitude: '07°12S', longitude: '39°18W', altitude: 377, v0: 30 },
{ id: 75, nome: 'Mossoró', latitude: '05°11S', longitude: '37°20W', altitude: 16, v0: 30 },
{ id: 76, nome: 'Chapecó', latitude: '27°06S', longitude: '52°37W', altitude: 674, v0: 45 },
{ id: 77, nome: 'Passo Fundo', latitude: '28°15S', longitude: '52°24W', altitude: 687, v0: 45 },
{ id: 78, nome: 'Niterói', latitude: '22°53S', longitude: '43°07W', altitude: 5, v0: 35 },
{ id: 79, nome: 'Vila Velha', latitude: '20°20S', longitude: '40°17W', altitude: 4, v0: 35 },
{ id: 80, nome: 'Serra', latitude: '20°07S', longitude: '40°18W', altitude: 25, v0: 35 },
{ id: 81, nome: 'Contagem', latitude: '19°55S', longitude: '44°05W', altitude: 858, v0: 35 },
{ id: 82, nome: 'Betim', latitude: '19°58S', longitude: '44°11W', altitude: 860, v0: 35 },
{ id: 83, nome: 'Guarulhos', latitude: '23°27S', longitude: '46°32W', altitude: 741, v0: 35 },
{ id: 84, nome: 'São Bernardo do Campo', latitude: '23°41S', longitude: '46°33W', altitude: 762, v0: 35 },
{ id: 85, nome: 'Santo André', latitude: '23°39S', longitude: '46°31W', altitude: 760, v0: 35 },
{ id: 86, nome: 'Osasco', latitude: '23°31S', longitude: '46°47W', altitude: 792, v0: 35 },
];
export function getStationById(id: number): MeteorologicalStation | undefined {
@@ -84,8 +121,9 @@ export function getStationById(id: number): MeteorologicalStation | undefined {
export function searchStations(query: string): MeteorologicalStation[] {
const q = query.trim().toLowerCase();
if (!q) return [...METEOROLOGICAL_STATIONS];
return METEOROLOGICAL_STATIONS.filter(
const sorted = [...METEOROLOGICAL_STATIONS].sort((a, b) => a.nome.localeCompare(b.nome));
if (!q) return sorted;
return sorted.filter(
(s) =>
s.nome.toLowerCase().includes(q) ||
s.latitude.toLowerCase().includes(q) ||