寻求可获取指定半径内印度邮政编码的API(Python应用)
印度指定半径内邮政编码查询API推荐
以下是几个适配印度邮政编码查询场景的可用方案,能满足你获取基准位置10公里范围内邮编的需求:
1. 印度邮政官方API
- 数据来自官方,准确性有保障,支持通过经纬度+半径参数查询周边邮编。
- 需要先注册获取API密钥,调用时提交基准位置的纬度、经度以及10公里的半径值,即可返回范围内的邮编列表。
- Python调用示例:
import requests def fetch_nearby_indian_pincodes(lat, lon, radius=10): api_endpoint = "https://api.indiapost.gov.in/pincode/nearby" request_params = { "lat": lat, "lon": lon, "radius": radius, "api_key": "你的API密钥" # 需在印度邮政开发者平台注册获取 } response = requests.get(api_endpoint, params=request_params) return response.json().get("pincodes", []) if response.ok else []
2. PinCode.in 第三方API
- 专为印度邮编打造的非官方服务,基础功能无需复杂注册即可使用。
- 支持通过基准邮编或经纬度查询指定半径内的周边邮编,返回格式简洁易解析。
- Python调用示例:
import requests def get_nearby_pincodes(base_pincode, radius=10): api_url = f"https://pincode.in/api/nearby/{base_pincode}/{radius}" response = requests.get(api_url) return response.json().get("nearby_pincodes", []) if response.ok else []
3. OpenStreetMap Overpass API
- 开源地理数据服务,可通过自定义查询提取印度的邮编节点,再结合地理逻辑筛选出10公里范围内的结果。
- 灵活性极强,适合需要自定义数据输出的场景,但需要编写Overpass QL查询语句。
- Python调用示例:
import requests def find_nearby_pincodes(lat, lon, radius=10): overpass_endpoint = "http://overpass-api.de/api/interpreter" query = f""" [out:json]; area["ISO3166-1"="IN"][admin_level=2]; node["postal_code"](around:{radius*1000},{lat},{lon}); out body; """ response = requests.get(overpass_endpoint, params={"data": query}) if not response.ok: return [] pincode_set = set() for elem in response.json()["elements"]: pincode = elem["tags"].get("postal_code") if pincode: pincode_set.add(pincode) return list(pincode_set)
注意:部分API可能存在调用频率限制,或需付费升级以获取更高请求配额,使用前建议查看对应服务的规则说明。
内容的提问来源于stack exchange,提问作者Aravind Pillai
相关产品推荐
相关产品推荐

