匹配参数
tpov_match.py 用于将 GPX 路径与地图匹配,其参数存储在一个 JSON 文件中,作为必要参数提供。match_params.json 中的默认参数应该适用于大多数场合。
Schema
为保证参数的格式正确,参数文件将根据存储在 match_schema.json 中的 JSON schema(英文) 文件进行验证。
参数
map_matcher- 一个用于将地图中的道路与 GPX 路径匹配的类。必须继承自 leuvenmapmatching.matcher.base.BaseMatcher(英文)。stop_matcher- 一个用于将公共交通站点与 GPX 路径匹配的函数。支持的匹配器:
NaiveStopMatcher- 将每个站点匹配到路径上最近的点。在存在重叠或交叉的路径上可能失败。如果您有更好的算法,请考虑为项目做出贡献,谢谢!
给开发者的实现细节:
该函数接受 GPX 文件路径、
tpov_extract.py输出的 JSON 对象以及地图匹配器的lattice_best和map_con作为输入。请参考
leuvenmapmatching的源代码,如需帮助请通过 GitHub 联系本项目的维护者。函数应返回一个含有 GPX 点索引的 list ,表示路径中离每个站点最近的坐标。
输出列表应按升序排列,否则请在匹配器内引发异常。参见
NaiveStopMatcher为示例。
use_rtree- 直接给地图匹配器的参数。绝大多数情况用false。exit_filter- 一个 Python 表达式,对于每个道路段进行求值。如结果为False则在匹配时忽略该道路段。使用
tpov_filter.txt过滤的地图文件将导致字典way具有以下键:highway- 道路类型(例如primary、tertiary_link)name- 道路名称oneway- 道路是否单行
具体来说,
way是一个键为地图文件中的 OSM 标签的字典。运行tpov_filter.py时使用不同的过滤文件以包含不同的键。在 OSM 维基 上可搜索 OSM 标签信息。
default_name- 当道路没有name标签时使用的名称,例如《无名路》。forward_angle- 在路口视为直行时最大允许的转向角度。follow_link- 匹配时是否替换link道路(辅路/匝道,例如secondary_link)的路名。使用以下之一:false保留原路名。替换的路名字符串,
%n会被自动替换为辅路的目的地路名。
snap_gpx- 是否将记录的 GPX 路径对齐到匹配完的路径。使用以下之一:false禁用对齐。一个非负整数启用对齐。数值表示除当前匹配路段之外考虑与前后各多少个路段对齐。
process_divided- 参见 process_divided.md。visualize- 是否用 HTML 可视化匹配的路径。hw_priority- 一个以 OSMhighway种类为键、整数优先级为值的对象。匹配器将优先显示优先级更高的道路。未列出的highway种类默认优先级为 0。matcher_params- 直接传递给地图匹配器的参数。详情请参阅您使用的地图匹配器的文档。BaseMatcher 文档(英文)提供一些参数信息。display_params- 一个控制数据显示方式的参数对象。display- 一个将数据转换为 GPX 标签与元数据列表的函数。支持的显示函数:
SimpleTextDisplay- 一个简单的显示函数,将所有内容输出为纯文本。
注意: 下面的参数可能会根据使用的显示函数而变化。
duration- 路口信息显示时长,以 GPX 点数量表示。transfer_separator- 用于分隔换乘站不同线路的字符串。bar_reverse- 如true进度条将从长变短。如false进度条将从短变长。use_reference- 如true则将站名保存为 GPX 元数据指针。可减小文件大小但会减慢处理速度。在大多数情况下使用false。
visu_params- 一个控制数据可视化方式的参数对象。visualizer- 一个可视化匹配数据(包括路径、路口、process_divided结果和站点)的函数。支持的可视化函数:
GPXVisualizer- 将可视化结果以 GPX 格式保存到visualization.gpx。HTMLVisualizer- 将可视化结果以 HTML 格式保存到visualization.html。
HTMLVisualizer需要的额外参数:template- 用于可视化的 HTML 模板,参见visualization_template_zh.html。