mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
F1 — a tolerancia de simplificacao e os digitos de quantizacao viraram politica em unidades de solo em scripts/lib/topology.mjs, consumida pelos dois scripts de geometria. Os quantis 0.35 copiados cortavam as 19 ZE de Salvador a ~0.6 m2 e os 417 municipios a ~1.78 km2; com tolerancia absoluta e a grade de ~103 m do estado, a malha das zonas caiu de 480 para 30.2 pontos/feature. bahia-municipalities segue byte-identico e o tripwire de bytes deu lugar a pontos/feature. F2 — featureMapKey passou a ser asserido sobre features reais das tres malhas comprometidas (417 codarea, 27 code, 19 slug), e o comentario de MAP_KEY_PROPERTIES agora diz o que o codigo faz: as propriedades sao mutuamente exclusivas, nao ordenadas por especificidade. F3 — a malha das zonas e um detalhe sobre o mapa, nao o mapa: se o chunk falha, Salvador cai no poligono municipal que ja esta desenhado embaixo e o resto da Bahia continua funcionando, com o motivo logado. A ressalva de aproximacao saiu do gate de comparacao e passou a depender de bundle.hasZoneMunicipalities, derivado no servidor de municipality.kind. F4 — orfaos deletados: os dois acessores sem chamador, isZoneMapKey (o servidor ja sabe a regra), o wrapper simplifyTopology e o helper polygonCount com um branch inalcancavel. MunicipalityMapNavigation colapsou em string | undefined e MunicipalitiesByMapKey em Record<string, string>.
23 lines
723 B
TypeScript
23 lines
723 B
TypeScript
import type { PolygonalFeature } from '../../src/lib/bahiaGeometriesTypes.js'
|
|
import { polygonRingsOf } from '../../src/lib/municipalityProximity.js'
|
|
|
|
export type FeatureBounds = {
|
|
west: number
|
|
east: number
|
|
south: number
|
|
north: number
|
|
}
|
|
|
|
/** Bounding box of every ring of a mesh feature. Shared by the int and e2e suites. */
|
|
export const featureBounds = (feature: PolygonalFeature): FeatureBounds => {
|
|
const positions = polygonRingsOf(feature).flat(2)
|
|
const longitudes = positions.map(([lng]) => lng)
|
|
const latitudes = positions.map(([, lat]) => lat)
|
|
|
|
return {
|
|
west: Math.min(...longitudes),
|
|
east: Math.max(...longitudes),
|
|
south: Math.min(...latitudes),
|
|
north: Math.max(...latitudes),
|
|
}
|
|
}
|