技术博客
邮编区域互查 + 地图标点:把省市区数据落到地图上

邮编区域互查 + 地图标点:把省市区数据落到地图上

作者: 万维易源
2026-09-03
邮编查询邮编区域互查ShowAPI免费接口API教程
# 邮编区域互查 + 地图标点:把省市区数据落到地图上 > 邮编区域互查(apiCode=1917)· 免费接口 · POST/GET · JSON · 初级~中级开发者 · 约 9 分钟 ## 核心要点 - 邮编区域互查返回的是**行政区划文本**(省/市/区/街道),**本身不含经纬度**,无法直接标点。 - 落地到地图需两步:① 调接口拿行政区划;② 用外部地理编码把行政区划转成经纬度,再标点。 - 本文给出「接口取数 + 外部地理编码 + 前端标点」的可运行思路,地理编码服务以公开方案示意。 ## Why:拿到地区名只是第一步 做网点分布、配送范围、用户地域分析时,最终要的是「在地图上画出来」。邮编区域互查负责把邮编/地区补全成标准行政区划,经纬度转换交给专业的地理编码服务,两者配合即可完成可视化。 ## What:接口速览 | 项 | 说明 | |----|------| | 接口 | 邮编区域互查(apiCode=1917),建议用接入点1 取完整省市区 | | 返回 | 行政区划文本(province/city/area/county),无坐标 | | 外部依赖 | 地理编码服务(将「省+市+区」转为经纬度) | ## How:取行政区划 → 地理编码 → 标点 ### 第一步:调接口取地区(Python) ```python import requests def get_region(app_key, code): r = requests.post("https://route.showapi.com/1917-1", params={"appKey": app_key, "code": code}, timeout=10) data = r.json() b = data.get("showapi_res_body", {}) if b.get("ret_code") != 0: return None return b.get("contentlist", [])[0] if b.get("contentlist") else None region = get_region("YOUR_APPKEY", "362504") # region: {"province":"福建省","city":"泉州市","area":"德化县",...} ``` ### 第二步:地理编码(示意,替换为你的地理编码服务) ```python # 伪代码:调用地理编码服务将「福建省 泉州市 德化县」转为经纬度 # 不同服务 API 不同,下面仅为结构示意,非特定服务密钥 def geocode(province, city, area): addr = f"{province}{city}{area}" # resp = requests.get(GEO_API, params={"address": addr, "key": GEO_KEY}) # return resp.json()["location"] # {"lng": ..., "lat": ...} raise NotImplementedError("请接入你的地理编码服务") ``` ### 第三步:前端标点(示意) ```javascript // 拿到 {lng, lat} 后在地图 SDK 上 addMarker map.addMarker({ lng: point.lng, lat: point.lat, title: `${region.area}` }); ``` ## 返回示例与解析 接口返回的是行政区划文本(见接入点1 字段),经纬度需外部地理编码获得。本接口**不提供坐标系/坐标字段**,请勿在代码里寻找 `location`/`lng`/`lat`。 ## 进阶/边界 - **坐标从哪来**:接口不含坐标,必须接地理编码服务;注意不同地图的坐标系(如 GCJ-02)差异。 - **批量标点**:多个邮编先批量查、合并去重后再统一地理编码,减少调用。 - **缓存**:行政区划与地理编码结果都较稳定,建议两层缓存(见《缓存策略》)。 - **如实说明边界**:本文不宣称接口返回坐标,地理编码为外部依赖。 ## FAQ **Q1:接口返回经纬度吗?** 不返回,只有行政区划文本,坐标需外部地理编码。 **Q2:用哪个地理编码服务?** 任意支持「地址→经纬度」的公开服务均可,按你的项目选型。 **Q3:坐标系要注意什么?** 国内地图常用 GCJ-02,跨服务转换时注意对齐,避免偏移。 **Q4:能直接画热力图吗?** 可以,先聚合成点再按密度渲染,地理编码是前提。 **Q5:邮编对应多个街道怎么标点?** 取需要的粒度(如区一级)作一个标记,或逐条标点。 ## 相关能力 / 下一步阅读 - [邮编区域互查·邮编查地区(接入点1)实战](https://www.showapi.com/guides/postcode-zip-to-region-1917) - [免费接口如何设计缓存策略](https://www.showapi.com/guides/postcode-cache-1917) - [邮编区域互查返回字段全解](https://www.showapi.com/guides/postcode-response-fields-1917) - **本系列共 12 篇**:查看[邮编区域互查指南总目录](https://www.showapi.com/guides/postcode-guides-1917)