When processing features with a region property, the id is intentionally removed to prevent duplicate IDs:
|
# So that any region doesn't have a duplicate id |
|
region_properties.pop('id', None) |
|
region_properties.pop('userdata', None) |
|
region = self.flatmap.new_feature(self.id, feature.geometry.representative_point(), region_properties) |
However, this results in region features having no identifier at all. For example,
UBERON:0001161 (body of stomach)
This impacts path handling. For example, portal/2 passes through UBERON:0001161, but without an id, the system cannot determine whether the region is present or associated with the path.
Proposed Solution
Assign a fallback unique ID (e.g., based on featureId or UBERON ID or CLASS ID) when adding region features to layer_features.
This preserves the original intent (no duplicate IDs) while ensuring regions remain identifiable for downstream logic.
Missing id for UBERON:0001161:
"868": {
"class": "digestive_18",
"tile-layer": "features",
"name": "body of stomach",
"label": "body of stomach",
"minzoom": 0,
"featureId": 868,
"models": "UBERON:0001161",
"bounds": [
3.1202072103334273,
-3.957220372623511,
4.266365794272358,
-2.1002029334923114
],
"markerPosition": [
3.751318297275743,
-2.9706798580850613
],
"geometry": "Polygon",
"layer": "whole-rat",
"anatomical-nodes": [
"[\"UBERON:0001161\", []]"
]
}

When processing features with a region property, the id is intentionally removed to prevent duplicate IDs:
flatmap-maker/mapmaker/flatmap/layers.py
Lines 344 to 347 in 091901a
However, this results in region features having no identifier at all. For example,
UBERON:0001161(body of stomach)This impacts path handling. For example,
portal/2passes throughUBERON:0001161, but without an id, the system cannot determine whether the region is present or associated with the path.Proposed Solution
Assign a fallback unique ID (e.g., based on featureId or UBERON ID or CLASS ID) when adding region features to layer_features.
This preserves the original intent (no duplicate IDs) while ensuring regions remain identifiable for downstream logic.
Missing id for
UBERON:0001161: