如何使用Python基于经纬度获取指定地点周边POI列表
如何用Python根据经纬度获取周边POI列表
作为编程新手,你可以通过第三方地图API来实现这个需求,下面以国内常用的高德地图API为例,一步步带你操作:
1. 准备API密钥
- 注册高德开发者账号,创建应用后获取你的
API Key(这是调用接口的凭证,免费额度足够新手测试使用)
2. 安装必要的Python库
你需要用requests库发送HTTP请求,打开终端执行:
pip install requests
3. 编写核心代码
下面是一个可直接运行的示例,会遍历你的经纬度列表,获取每个点周边1公里内的餐饮类POI(你可以修改类别和搜索半径):
import requests # 替换成你的高德API Key API_KEY = "你的API密钥" # 你的经纬度列表,格式为 [(纬度1, 经度1), (纬度2, 经度2), ...] coords_list = [(39.908860, 116.397390), (31.230416, 121.473701)] # 高德POI周边搜索接口 url = "https://restapi.amap.com/v3/place/around" for lat, lon in coords_list: params = { "key": API_KEY, "location": f"{lon},{lat}", # 注意高德接口是 经度,纬度 的顺序 "radius": 1000, # 搜索半径,单位米 "types": "050000", # 餐饮类POI的编码,其他类别可以查高德文档 "output": "json" } try: response = requests.get(url, params=params) response.raise_for_status() # 检查请求是否成功 result = response.json() if result["status"] == "1": print(f"坐标({lat}, {lon})周边POI:") for poi in result["pois"]: print(f"- 名称:{poi['name']},地址:{poi['address']}") else: print(f"坐标({lat}, {lon})请求失败:{result['info']}") except Exception as e: print(f"处理坐标({lat}, {lon})时出错:{str(e)}")
关键说明
- 接口参数可以调整:比如
types换成其他POI类别(如酒店、商场),radius改搜索范围 - 不同地图API的参数格式可能不同(比如百度地图是纬度在前),使用时要对应看官方文档
- 免费API有调用次数限制,测试时别一次性跑太多坐标
内容的提问来源于stack exchange,提问作者nhd
相关产品推荐
相关产品推荐

