You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PSMA Location ID(ref:psma:loc_pid)获取郊区名与邮政编码

通过PSMA Location ID查询OSM获取郊区名称和邮编

单个ID查询方法

使用Overpass API(OSM专用查询接口)是最直接的解决方案,以下是具体逻辑和示例:

基础查询语句(Overpass QL)

[out:json][timeout:25];
// 定位带有目标PSMA Location ID的OSM元素
nwr["ref:psma:loc_pid"="YOUR_LOC_PID"];
// 递归获取元素关联的周边行政区域信息
out body;
>;
out skel qt;

精准提取目标标签

如果只想获取郊区名称和邮政编码,可以优化查询,直接过滤所需内容:

[out:json][timeout:25];
nwr["ref:psma:loc_pid"="YOUR_LOC_PID"]->.target;
// 获取所属郊区(place=suburb类型的区域)
area["place"="suburb"](around.target:100);
out tags;
// 获取所属邮政编码区域
area["addr:postcode"](around.target:100);
out tags;

替换YOUR_LOC_PID为实际的PSMA Location ID即可,可通过Overpass公共端点执行查询,或用可视化工具测试语句逻辑。

批量查询方法

Overpass支持一次性匹配多个PSMA Location ID,适配批量处理场景:

批量查询示例

[out:json][timeout:60];
// 匹配多个ID(用竖线分隔)
nwr["ref:psma:loc_pid"~"^(LOC_PID_1|LOC_PID_2|LOC_PID_3)$"]->.targets;
// 遍历每个目标元素,提取对应区域信息
foreach.targets->.elem(
  area["place"="suburb"](around.elem:100);
  out tags;
  area["addr:postcode"](around.elem:100);
  out tags;
);

批量查询注意事项

  • 调整timeout参数(比如设为60),避免因查询量过大超时。
  • 一次匹配的ID数量建议不超过50个,防止触发接口限流,可分批次提交查询。
  • 部分ID可能在OSM中无对应数据,需做好空值处理。

关键标签说明

  • 郊区名称:对应OSM中place=suburb类型元素的name标签。
  • 邮政编码:通常对应addr:postcode或postal_code标签,不同区域的标签命名可能有差异。

内容的提问来源于stack exchange,提问作者Wesley Jeftha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:45:37