fix(B05): 확정된 구조물 측점의 편집 버튼 이중 생성 제거
확정을 거친 구조물 측점은 종단 정본(alignment.stations)에 이미 병합돼 있는데 사이드바 목록(irregular)에서 또 추가돼 ▲▼가 2개씩 생겼다(같은 자리에 겹쳐 있다가 겹침 회피 캐스케이드가 옆으로 벌리면서 드러남). 같은 chainage(소수 3자리)는 한 번만 버튼을 단다. 검증: 버튼 27→23개(배관 4곳 중복 제거), 근접 측점 비킴은 유지. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -241,16 +241,25 @@ export function createEditOverlay(options: EditOverlayOptions): HTMLElement {
|
||||
* 비정규 측점(구조물)이 규칙 측점 바로 옆에 서면 ▲▼가 서로 덮였다(2026-08-04 사용자
|
||||
* 보고) — 앞 버튼과 최소 간격(BUTTON_CLEARANCE_PX)을 강제하며 오른쪽으로 밀어낸다.
|
||||
* 측점선 자체는 그대로라 버튼만 살짝 비켜선다.
|
||||
*
|
||||
* 확정을 거친 구조물 측점은 종단 정본(alignment.stations)에 **이미 병합**돼 있어
|
||||
* 사이드바 목록(irregular)과 이중으로 잡힌다 — 같은 chainage(소수 3자리)는 한 번만
|
||||
* 버튼을 단다(2026-08-04 사용자 보고: 구조물 측점 버튼이 2개씩 생김).
|
||||
*/
|
||||
const alignmentStationKeys = new Set(
|
||||
alignment.stations.map((station) => chainageKey(station.chainage_m)),
|
||||
);
|
||||
const stationPlacements = [
|
||||
...alignment.stations.map((station) => ({
|
||||
chainage: station.chainage_m,
|
||||
plan: station.plan_elevation_m,
|
||||
})),
|
||||
...irregular.map((station) => ({
|
||||
chainage: station.chainage_m,
|
||||
plan: planElevationAtSample(alignment, station.chainage_m),
|
||||
})),
|
||||
...irregular
|
||||
.filter((station) => !alignmentStationKeys.has(chainageKey(station.chainage_m)))
|
||||
.map((station) => ({
|
||||
chainage: station.chainage_m,
|
||||
plan: planElevationAtSample(alignment, station.chainage_m),
|
||||
})),
|
||||
]
|
||||
.sort((a, b) => a.chainage - b.chainage)
|
||||
.map(
|
||||
|
||||
Reference in New Issue
Block a user