咨询:能否指定Valhalla从PostgreSQL数据库读取路由数据?
Valhalla从PostgreSQL读取OSM路由数据的方法
可以的,Valhalla支持直接从PostgreSQL数据库读取OSM数据来构建路由图,无需依赖PBF文件。具体操作如下:
配置Valhalla连接数据库
找到Valhalla的配置文件(通常命名为conf.json),修改其中的sources字段,添加PostgreSQL数据源配置,替换原有的PBF路径配置。示例配置片段如下:"sources": [ { "type": "postgresql", "connection_string": "dbname=你的数据库名 user=数据库用户名 password=数据库密码 host=localhost port=5432", "table_prefix": "" // 如果osm2pgsql导入时用了表前缀,这里填写对应前缀,默认留空 } ]生成Valhalla路由瓦片
运行Valhalla的构建工具(不同版本工具名可能为valhalla_build_tiles或valhalla_import),指定配置文件即可从数据库拉取数据生成路由瓦片:valhalla_build_tiles -c conf.json注意事项
- 确保osm2pgsql导入时保留了所有Valhalla需要的OSM标签(比如道路的
highway、公共交通相关标签等),默认导入配置即可满足需求,若使用自定义Lua过滤规则,不要丢弃关键标签。 - 保证PostgreSQL版本与Valhalla兼容,建议使用官方推荐的稳定版本。
- 数据库账号需要拥有对应OSM表的读取权限。
- 确保osm2pgsql导入时保留了所有Valhalla需要的OSM标签(比如道路的
内容的提问来源于stack exchange,提问作者Baz
相关产品推荐
相关产品推荐

