使用Python,有没有一种函数、库或其他方式可以检查一个特定的纬度/经度坐标对是否落在一个定义好的地理边界内,比如美国的某个州?
例如:
32.781065, -96.797117 是否在德克萨斯州内?
例如:
32.781065, -96.797117 是否在德克萨斯州内?
{
'name': 'Mountain View',
'cc': 'US',
'lat': '37.38605',
'lon': '-122.08385',
'admin1': 'California',
'admin2': 'Santa Clara County'
}
pip install geocoder
进行安装。import geocoder
results = geocoder.google('32.781065, -96.797117', reverse = True)
print(results.current_result.state_long)
只是为了补充mathisonian的答案。
import reverse_geocoder
#create a list of US states (and the District of Columbia)
state_names = ["Alaska", "Alabama", "Arkansas", "Arizona", "California", "Colorado", "Connecticut", "District of Columbia","Delaware", "Florida","Georgia", "Hawaii", "Iowa", "Idaho", "Illinois", "Indiana", "Kansas", "Kentucky", "Louisiana", "Massachusetts", "Maryland", "Maine", "Michigan", "Minnesota", "Missouri", "Mississippi", "Montana", "North Carolina", "North Dakota", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "Nevada", "New York", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina","South Dakota", "Tennessee", "Texas", "Utah", "Virginia", "Vermont", "Washington", "Wisconsin", "West Virginia", "Wyoming"]
#get the metadata for the latitude and longitude coordinates
results = reverse_geocoder.search((32.781065, -96.797117))
#check if the location is a US state (the 'admin1' variable is where US states are listed)
if results[0]['admin1'] in state_names:
print(results[0]['admin1'])
这应该会打印出 "Texas"。