nominatim_fdw
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
nominatim_fdw | 2.1.0 | FDW | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8680 | nominatim_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
PIGSTY RPM and DEB packages are aligned at 2.1.0 for PostgreSQL 14 through 18.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 2.1.0 | 1817161514 | nominatim_fdw | - |
| RPM | PIGSTY | 2.1.0 | 1817161514 | nominatim_fdw_$v | - |
| DEB | PIGSTY | 2.1.0 | 1817161514 | postgresql-$v-nominatim-fdw | - |
构建
您可以使用 pig build 命令构建 nominatim_fdw 扩展的 RPM / DEB 包:
安装
您可以直接安装 nominatim_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
- nominatim_fdw v2.1 README
- nominatim_fdw v2.1 变更日志
- nominatim_fdw v2.1 控制文件
- 官方Nominatim API概览
- OpenStreetMap Nominatim使用政策
nominatim_fdw 从PostgreSQL调用一个Nominatim地理编码服务。与传统的FDW不同,它暴露了用于搜索、逆向地理编码和OSM对象查找的函数;它不会创建可查询的外部表。
配置服务器
公共OpenStreetMap端点有一个官方使用政策。对于持续或批量工作负载,请使用授权提供商或运行自己的Nominatim服务,根据要求标识应用程序,并遵守速率限制。
2.1 支持通过逐用户映射配置 HTTP Basic 认证:
应把 endpoint 与 proxy 凭据放在 USER MAPPING 中,以便 PostgreSQL 应用其凭据可见性规则,而不是写进 foreign-server options。
核心流程
自由文本搜索:
逆向地理编码和对象查找:
重要对象
nominatim_search(...)实现了自由文本或结构化前向搜索。nominatim_reverse(...)将经度和纬度解析为最近的合适OSM地址。nominatim_lookup(...)获取节点、方式或关系标识符,如N123、W456或R789。nominatim_fdw_version()报告扩展和主库版本。nominatim_fdw_settings以行的形式暴露依赖和构建版本。- 服务器选项包括
url、代理配置、超时设置、重试和重定向限制,以及默认的accept_language。
所有端点函数都是STRICT:显式SQL中的NULL参数返回空结果而不发送请求。在2.0中它们正确声明为VOLATILE,因为响应是远程的且可以更改。
2.1 版本变更和注意事项
2.0版本验证逆向坐标、添加了email、polygon_threshold和entrances,暴露依赖设置,并修复了返回详细字段中的JSON转义。它还具有用户可见的变化:逆向输出使用display_name;addressparts变为addressdetails;地址细节默认为真用于逆向和查找;版本输出更短。
安装 2.1 软件包文件后,在已有数据库中升级:
2.1 增加 Basic-auth 映射,并把 libcurl 初始化改为每个 PostgreSQL backend 一次,不再依赖每次请求的隐式初始化。libcurl 修复不要求新增 SQL 或预加载设置。
每次调用都会在网络语句中执行网络I/O操作。请使用有限的超时设置,限制谁可以创建或修改服务器,并避免在一个大型查询中的每一行都调用公共服务。上游构建需要PostgreSQL 10或更高版本、libxml2 2.5或更高版本以及libcurl 7.74或更高版本。