diff --git a/CHANGELOG.md b/CHANGELOG.md index 05e3cff23..8ee00d839 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,5 @@ # Changelog -- Keep missing CCTV numbers unknown instead of reading them as zero. `Number` - turns null, blank strings and booleans into 0 or 1, and the camera source - list sends an unknown number as JSON null, so a source-pack camera that left - out its pose reached the browser as zeros clamped to each field's floor — - facing north, pitch −2°, FOV 20°, range 120 m, mount 6 m and ground 0 m — - instead of the defaults (id-hash heading, −17°, 74°, 700 m, 24 m and the - city's ground); a null or blank position placed the camera at 0,0. The - server's `toFiniteNumber` and the browser's `safeNumber` now treat absent, - blank and boolean values as missing. The same conversion also stops a - Tallinn row with a null heading reading as a confident north-facing camera, - a Caltrans camera with a blank elevation losing its 150 m ground prior, and - a TfL or Catalonia camera with a null or blank coordinate being kept at 0,0 - or on the zero meridian. - - Local FM seek finds stations after wrapping around 87.5–108 MHz, covers both band edges, skips the starting station and rejects spectra from an earlier tune (Aditya, @Rohilalala, #1174). diff --git a/changelog.d/1172-cctv-missing-numbers.md b/changelog.d/1172-cctv-missing-numbers.md new file mode 100644 index 000000000..d401021e9 --- /dev/null +++ b/changelog.d/1172-cctv-missing-numbers.md @@ -0,0 +1,13 @@ +- Keep missing CCTV numbers unknown instead of reading them as zero. `Number` + turns null, blank strings and booleans into 0 or 1, and the camera source + list sends an unknown number as JSON null, so a source-pack camera that left + out its pose reached the browser as zeros clamped to each field's floor — + facing north, pitch −2°, FOV 20°, range 120 m, mount 6 m and ground 0 m — + instead of the defaults (id-hash heading, −17°, 74°, 700 m, 24 m and the + city's ground); a null or blank position placed the camera at 0,0. The + server's `toFiniteNumber` and the browser's `safeNumber` now treat absent, + blank and boolean values as missing. The same conversion also stops a + Tallinn row with a null heading reading as a confident north-facing camera, + a Caltrans camera with a blank elevation losing its 150 m ground prior, and + a TfL or Catalonia camera with a null or blank coordinate being kept at 0,0 + or on the zero meridian (omerbberk, #1172). diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 38f9249b2..d63467981 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -1355,11 +1355,13 @@ browser rendering is unchanged. CCTV numbers are read as missing when they are absent, null, blank or boolean, on the server (`toFiniteNumber`, every pack and the file/env source packs) and in the browser (`safeNumber`). `/api/cctv/sources` sends an unknown number as -JSON null; the browser then applies the field's default — id-hash heading, -pitch −17°, FOV 74°, range 700 m, mount 24 m, the city's ground elevation — -rather than reading zero and clamping it to the field's floor. A camera with a -missing latitude or longitude is skipped by the browser catalog instead of -being placed at 0,0. Real zeros, including `"0"`, are kept. +JSON null; the browser then uses the bundled seed camera's value when one +shares the id, else the field's default — id-hash heading, pitch −17°, FOV 74° +(which a matched datasheet can still replace), range 700 m, mount 24 m, the +city's ground elevation — rather than reading zero and clamping it to the +field's floor. A camera with a missing latitude or longitude and no seed +position is skipped by the browser catalog instead of being placed at 0,0. +Real zeros, including `"0"`, are kept. ## Terrain, traffic, fire and bike-share provider modules