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

如何在Python中将坐标列表转换为州/国家列表?

逆地理编码实现:reverse_geocode与geopy使用指南

基础概念说明

  • User-Agent:向地理编码服务发送请求时,用来标识你的程序/应用的字符串。多数免费地理服务(比如OpenStreetMap Nominatim)要求设置该字段,用于区分请求来源,避免恶意高频请求导致的封禁。
  • API密钥:部分商业地理服务(比如Google Maps Geocoding)需要的身份验证凭证,用于追踪请求量、计费。reverse_geocode和Nominatim这类免费公开服务不需要API密钥。

1. 使用reverse_geocode库

该库基于Free GeoIP服务,无需额外配置,适合批量处理坐标数据。

操作步骤:

  1. 安装库
pip install reverse_geocode
  1. 批量处理经纬度元组列表
import reverse_geocode

# 你的经纬度元组列表
coordinates = ((39.9042, 116.4074), (40.7128, -74.0060), (51.5074, -0.1278))

# 执行逆地理编码
results = reverse_geocode.search(coordinates)

# 提取州(state)和国家(country)
location_info = [{"state": res["state"], "country": res["country"]} for res in results]

print(location_info)

返回示例:

[{'state': 'Beijing', 'country': 'China'}, {'state': 'New York', 'country': 'United States'}, {'state': 'England', 'country': 'United Kingdom'}]

2. 使用geopy的Nominatim

geopy是灵活的地理编码工具,支持多种服务,这里选用免费的Nominatim(基于OpenStreetMap)。

操作步骤:

  1. 安装库
pip install geopy
  1. 批量处理坐标(含异常处理)
from geopy.geocoders import Nominatim
from geopy.exc import GeocoderTimedOut, GeocoderUnavailable

# 初始化Nominatim,必须设置user-agent(可填你的项目名/联系邮箱)
geolocator = Nominatim(user_agent="my_reverse_geocode_demo")

coordinates = ((39.9042, 116.4074), (40.7128, -74.0060), (51.5074, -0.1278))
location_info = []

for lat, lon in coordinates:
    try:
        # 执行逆地理编码,设置超时时间
        location = geolocator.reverse((lat, lon), timeout=10)
        address = location.raw['address']
        # 不同地区的州字段可能为state或province,做兼容处理
        state = address.get('state', address.get('province', 'Unknown'))
        country = address.get('country', 'Unknown')
        location_info.append({"state": state, "country": country})
    except (GeocoderTimedOut, GeocoderUnavailable):
        location_info.append({"state": "请求超时/服务不可用", "country": "请求超时/服务不可用"})

print(location_info)

注意:Nominatim有请求频率限制(1次/秒),如果处理大量坐标,建议在循环内添加延时:

import time
# 每次请求后暂停1秒
time.sleep(1)

内容的提问来源于stack exchange,提问作者Khan 99

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:18:18