mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-14 08:53:11 +00:00
Salvador era um polígono só carregando os votos da cidade inteira, então o coroplético não conseguia responder "qual pedaço de Salvador está fraco / é meu". As 19 ZE ganham polígono próprio, dissolvido da malha de bairros do IBGE (Censo 2022) pela lista de circunscrição da RA 02/2017 do TRE-BA, e o mapa passa a pintar por map key (slug para as zonas, ibgeCode para o resto) em vez de codarea. O polígono municipal de Salvador continua desenhado por baixo, sem dado e sem interação, para não abrir buraco no contorno do estado. Aproximação declarada na copy e no cabeçalho do script: o TRE publica a circunscrição como lista de bairros, então o bairro é o átomo geométrico — Periperi, que a resolução corta na Rua das Pedrinhas, vai inteiro para a ZE 17. competitiveRank segue por cidade (o artefato TSE só tem federalRankByIbgeCode). Sem migration, sem collection, sem action, sem Consent.
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
/**
|
|
* Lazy loaders for Bahia map geometries (B3 / B5 F1 / B8 F2).
|
|
*
|
|
* TopoJSON decode runs only when a map surface mounts — not on the default `/campanha` graph.
|
|
* Submodules: `bahiaMunicipalityGeometries.ts`, `bahiaTerritoryGeometries.ts`,
|
|
* `bahiaMunicipalityZoneGeometries.ts`.
|
|
*/
|
|
|
|
export type {
|
|
MunicipalityGeometryModule,
|
|
MunicipalityZoneGeometryModule,
|
|
TerritoryGeometryModule,
|
|
} from '@/lib/bahiaGeometriesTypes'
|
|
|
|
import type {
|
|
MunicipalityGeometryModule,
|
|
MunicipalityZoneGeometryModule,
|
|
TerritoryGeometryModule,
|
|
} from '@/lib/bahiaGeometriesTypes'
|
|
|
|
let municipalityModulePromise: Promise<MunicipalityGeometryModule> | null = null
|
|
let municipalityZoneModulePromise: Promise<MunicipalityZoneGeometryModule> | null = null
|
|
let territoryModulePromise: Promise<TerritoryGeometryModule> | null = null
|
|
|
|
export const loadMunicipalityGeometryModule = (): Promise<MunicipalityGeometryModule> => {
|
|
municipalityModulePromise ??= import('@/lib/bahiaMunicipalityGeometries').then(
|
|
(module) => module.municipalityGeometryModule,
|
|
)
|
|
return municipalityModulePromise
|
|
}
|
|
|
|
export const loadMunicipalityZoneGeometryModule = (): Promise<MunicipalityZoneGeometryModule> => {
|
|
municipalityZoneModulePromise ??= import('@/lib/bahiaMunicipalityZoneGeometries').then(
|
|
(module) => module.municipalityZoneGeometryModule,
|
|
)
|
|
return municipalityZoneModulePromise
|
|
}
|
|
|
|
export const loadTerritoryGeometryModule = (): Promise<TerritoryGeometryModule> => {
|
|
territoryModulePromise ??= import('@/lib/bahiaTerritoryGeometries').then(
|
|
(module) => module.territoryGeometryModule,
|
|
)
|
|
return territoryModulePromise
|
|
}
|