Skip to content

Commit 7b3ba8f

Browse files
committed
fix: to_id and_from_id not working correctly
1 parent 58e4ad8 commit 7b3ba8f

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

ORStools/common/directions_core.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def get_fields(
8181
to_name: str = "TO_ID",
8282
line: bool = False,
8383
extra_info: list = [],
84+
two_layers: bool = False,
8485
) -> QgsFields:
8586
"""
8687
Builds output fields for directions response layer.
@@ -114,6 +115,8 @@ def get_fields(
114115
fields.append(QgsField(from_name, from_type))
115116
if not line:
116117
fields.append(QgsField(to_name, to_type))
118+
if two_layers:
119+
fields.append(QgsField(from_name, from_type))
117120
for info in extra_info:
118121
field_type = QVariant.Int
119122
if info in ["waytype", "surface", "waycategory", "roadaccessrestrictions", "steepness"]:
@@ -260,15 +263,16 @@ def build_default_parameters(
260263
return params
261264

262265

263-
def get_extra_info_features_directions(response: dict, extra_info_order: list[str]):
266+
def get_extra_info_features_directions(
267+
response: dict, extra_info_order: list[str], to_from_values: list
268+
):
264269
extra_info_order = [
265270
key if key != "waytype" else "waytypes" for key in extra_info_order
266271
] # inconsistency in API
267272
response_mini = response["features"][0]
268273
coordinates = response_mini["geometry"]["coordinates"]
269274
feats = list()
270275
extra_info = response_mini["properties"]["extras"]
271-
logger.log(str(extra_info))
272276
extras_list = {i: [] for i in extra_info_order}
273277
for key in extra_info_order:
274278
try:
@@ -290,7 +294,7 @@ def get_extra_info_features_directions(response: dict, extra_info_order: list[st
290294
extra = extras_list[j]
291295
attr = extra[i]
292296
attrs.append(attr)
293-
feat.setAttributes(attrs)
297+
feat.setAttributes([to_from_values[0], to_from_values[1]] + attrs)
294298
feats.append(feat)
295299

296300
return feats

ORStools/proc/directions_points_layers_proc.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,9 @@ def sort_end(f):
212212
field_types.update({"from_type": source_field.type()})
213213
if destination_field:
214214
field_types.update({"to_type": destination_field.type()})
215-
sink_fields = directions_core.get_fields(**field_types, extra_info=extra_info)
215+
sink_fields = directions_core.get_fields(
216+
**field_types, extra_info=extra_info, two_layers=True
217+
)
216218

217219
(sink, dest_id) = self.parameterAsSink(
218220
parameters,
@@ -244,7 +246,9 @@ def sort_end(f):
244246
continue
245247

246248
if extra_info:
247-
feats = directions_core.get_extra_info_features_directions(response, extra_info)
249+
feats = directions_core.get_extra_info_features_directions(
250+
response, extra_info, values
251+
)
248252
for feat in feats:
249253
sink.addFeature(feat)
250254
else:

0 commit comments

Comments
 (0)