4
0
Fork
You've already forked iD
0
No description
  • JavaScript 90.4%
  • CSS 5.3%
  • TypeScript 4.1%
  • Nix 0.1%
Find a file
Vojtěch Fošnár e447da4b08
iD fork patch
Rolling dev commit on top of cz-develop@origin — squash confirmed WIP into here; title stays generic, this body tracks the features it carries.
Features:
- Unified JOSM-style "Layers" pane: enabled-layers panel (drag-reorder within z-bands, per-layer opacity, ×ばつ remove) over a static add-catalogue (Backgrounds/Overlays/Map-data); Map Data/Help/Preferences panes folded into the Layers pane.
- Indoor level filter, 3-state disposition (full / context / hidden): off-floor explicit-level features hide; outdoor / untagged / building-shell / indoor-missing-level features dim as still-editable context, never hidden (it's an editor). Adds .level-context (dim, pointer-events kept). Replaced the old hide-everything-floor-less policy.
- ZABAGED backend defaults to prod origins (tiles.vfosnar.cz / features.vfosnar.cz); localhost via ID_MARTIN_TILE_URL / ID_FEATURESERV_URL for ZABAGED-server dev.
- ZABAGED waterway conflation robustness: dedup right-click menu by table|fid (per-tile line fragments no longer repeat); never silently no-op (matched-but-unmorphable fid -> announced standalone); matcher coverDistMeters 5->8 + morph COVER_TOL 8->15 + sparse-end span extension so wide/sparse rivers (Labe) pair and import the FULL reach; matcher seeds base+local entities so split-off pieces stay matchable across sequential imports (adjacent fid no longer dumps a duplicate); boundary anchors snap to the fid endpoint so a confluence node shared by several fids seats on the junction from any of them. Regression fixtures + specs: nearpoint_water, labe_27674, labe_adjacent, labe_junction, conflation_sequential, conflation_junction.
- Block node-merge of distinct POIs: actionConnect.disabled() returns 'merging_features' when 2+ nodes carry a primary feature key (osmPrimaryFeatureKeys/osmHasPrimaryFeature in osm/tags.ts, sourced from OSM wiki Map_features), so Merge (C) no longer silently collapses two POIs into name=A;B; tooltip operations.merge.merging_features. Topology connects (<=1 tagged node) still allowed. Spec: actions/connect #disabled. Plus AGENTS.md convention: OSM tagging facts come from the wiki, not memory.
- Overlapping POIs are allowed + manageable: drag snaps the LOCATION onto a target but skips connect/merge for 'merging_features' (drag_node.js wouldMergeFeatures + hasRelationConflict no-bounce), so a POI drops at the exact same coord, separate. ui/coincident_nodes.js floats a top-left picker (mounted .over-map) listing every node at the selected node's EXACT loc (tree-queried) — name as main line, preset type as muted subtitle; click a row to select it. Built from native iD components (.feature-list-item / .fillL / svgIcon / t.append), theme-var-only CSS (css/64_coincident_nodes.css), locale coincident_nodes.title. close_nodes validator skips a coincident pair when BOTH nodes carry a primary feature (intentional stacks not nagged; POI-atop-bare still flags) — spec validations/close_nodes. Plus AGENTS.md convention: build UI from iD-native components, never handrolled HTML/CSS (theme vars, no hex literals).
- Userscript userscript/osm-edit-redirect.user.js: redirects openstreetmap.org/edit to id.vfosnar.cz, mirroring osm.org param translation (id.js.erb + osm.js.erb: id=node/12345, map/passthrough from hash); self-update via codeberg raw on cz-develop. Plus AGENTS.md convention generalized: external-system facts verified against primary source or flagged unverified.
- README rewritten: opinionated/expert-only fork in plain Czech (formal vykání), fork-feature list, userscript install + self-update, no docs index. AGENTS.md: update README fork-feature list on every user-visible feature change.
- Codeberg repo re-rooted onto a squashed parentless v2.41.1 base (271M->8M): upstream's 17000-commit history (a 12M dist/iD.js per commit) dropped from the fork; dist build-outputs untracked (npm run all / nix build regenerates them; dist/locales kept tracked, served via assetPath('')); the upstream remote refs are the rebase fetch anchor (jj git fetch && jj rebase -d <new-tag>; do not gc --prune them). Docs: AGENTS.md Build/test + VCS.
2026年06月29日 14:27:31 +02:00
.cspell iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.github iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.tx iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.vscode iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.zed ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
config iD fork patch 2026年06月29日 14:27:31 +02:00
css iD fork patch 2026年06月29日 14:27:31 +02:00
data iD fork patch 2026年06月29日 14:27:31 +02:00
dist iD fork patch 2026年06月29日 14:27:31 +02:00
docs ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
modules iD fork patch 2026年06月29日 14:27:31 +02:00
scripts ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
svg iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
test iD fork patch 2026年06月29日 14:27:31 +02:00
userscript iD fork patch 2026年06月29日 14:27:31 +02:00
.codespellignorelines iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.editorconfig iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.git-blame-ignore-revs iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.gitattributes iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.gitignore ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
.npmignore iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
.nvmrc iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
ACCESSIBILITY.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
AGENTS.md iD fork patch 2026年06月29日 14:27:31 +02:00
API.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
ARCHITECTURE.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
CHANGELOG.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
CLAUDE.md ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
CODE_OF_CONDUCT.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
CONFLATION.md iD fork patch 2026年06月29日 14:27:31 +02:00
CONTRIBUTING.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
cspell.json iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
DEPLOYMENT.md iD fork patch 2026年06月29日 14:27:31 +02:00
eslint.config.js iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
FAQ.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
flake.lock ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
flake.nix ČÚZK iD fork: imagery, ZABAGED layer, conflation, Nix packaging 2026年06月27日 18:23:17 +02:00
index.html iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
INDOOR.md iD fork patch 2026年06月29日 14:27:31 +02:00
land.html iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
LAYERS.md iD fork patch 2026年06月29日 14:27:31 +02:00
LICENSE.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
package-lock.json iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
package.json iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
PRIVACY.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
README.md iD fork patch 2026年06月29日 14:27:31 +02:00
RELEASING.md iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
tsconfig.json iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
vitest.config.ts iD v2.41.1 (squashed upstream base, dist build-output untracked) 2026年06月29日 14:18:31 +02:00
ZABAGED.md iD fork patch 2026年06月29日 14:27:31 +02:00

ČÚZK iD (opinionated fork)

Osobní, opinionated fork editoru iD, webového editoru OpenStreetMap.

Jen pro pokročilé. Tento fork mění nebo zahazuje chování upstreamu. Předpokládá znalost iD, tagování OSM i dat ČÚZK. Žádná záruka stability, žádná podpora. Pro běžný editor použijte upstream iD nebo hostovaný iD.

Hostovaná instance: https://id.vfosnar.cz

Co fork přidává

  • Referenční vrstva ZABAGED z lokálního backendu PostGIS/martin. Viz ZABAGED.md.
  • Konflace ČÚZK (v1): import, který data nejdřív spáruje s OSM a pak je přetvoří. Vodní toky se zpracují po jednotlivých fidech (linie se přetvoří na místě a rozdělí na hranici fidu, nikdy slepé smazat a nahradit), plochy (landuse) se jen vloží. Viz CONFLATION.md.
  • Sjednocený panel „Vrstvy" ve stylu JOSM: jeden panel pro zapnuté vrstvy (přesouvání, krytí, odebrání) nad katalogem pro přidávání; samostatné panely Mapová data / Nápověda / Předvolby jsou sloučené dovnitř. Viz LAYERS.md.
  • Nativní mapování interiérů: filtr pater, výběr patra, pole „Floors served", validátory. Viz INDOOR.md.
  • Žádné nechtěné slučování POI: Sloučit i přichycení tažením odmítnou spojit dva uzly, pokud oba nesou nějaký feature tag; navíc picker, který ukáže uzly ležící na stejném místě.
  • České letecké snímky (imagery).

Userscript: přesměrování openstreetmap.org/edit na tento fork

userscript/osm-edit-redirect.user.js přesměruje https://www.openstreetmap.org/edit na id.vfosnar.cz a parametry /edit řádně přeloží.

Nainstalujte přes správce userscriptů (Tampermonkey, Violentmonkey, Greasemonkey):

https://codeberg.org/osmcz/iD/raw/branch/cz-develop/userscript/osm-edit-redirect.user.js

Sestavení a spuštění

Vývojový model, build příkazy a záludnosti jsou v AGENTS.md. Balení je konfigurovatelný Nix build (nix build vytvoří statický dist/); viz DEPLOYMENT.md. Nasazení (server, doména) je na uživateli a není součástí tohoto repozitáře.

Upstream a licence

Založeno na openstreetmap/iD, dostupné pod licencí ISC. Viz LICENSE.md.

iD navíc používá části tohoto open source softwaru.