我正在寻找最佳/最简单的方式来以编程方式获取美国城市所在的美国城市的名称。它似乎没有一个简单的API可用于这样一个(看似简单)的任务?寻找美国城市居住的美国城市的最佳方式是什么?
6
A
回答
7
你可以下载县/市/邮政编码信息可自由使用的数据库,如这一个: http://www.unitedstateszipcodes.org/zip-code-database/(无需注册或付费)
导入它的整体,还是它的一个小节,到本地永久性数据存储(如数据库),每当你需要查找一个城市的县
注意查询它:县信息已经从最初联.csv文件消失了,因为这个答案被张贴。 此链接不再包含县信息:http://federalgovernmentzipcodes.us/free-zipcode-database.csv
1
0
最快和最不回避的方式可能是使用来自免费地理位置API(在Google上很容易找到)的JSON/XML请求。这样你就不需要创建/托管你自己的数据库。
1
请参阅从2000年人口普查
0
下面这个链接在TX所有的城市是一些代码以编程方式攫取美国县的名字给一个美国城市使用/状态Google Maps API。此代码速度慢/效率低,并且没有任何错误处理。然而,它对我来说可靠地工作,使县与一千个城市的名单匹配。
#Set up googlemaps API
import googlemaps
google_maps = googlemaps.Client(key='API_KEY_GOES_HERE')
#String of city/state
address_string = 'Atlanta, GA'
#Geocode
location = google_maps.geocode(address_string)
#Loop through the first dictionary within `location` and find the address component that contains the 'administrative_area_level_2' designator, which is the county level
target_string = 'administrative_area_level_2'
for item in location[0]['address_components']:
if target_string in item['types']: #Match target_string
county_name = item['long_name'] #Or 'short_name'
break #Break out once county is located
else:
#Some locations might not contain the expected information
pass
这将产生:
>>> county_name
Fulton County
注意事项:
- 代码将打破,如果google_maps.geocode()不通过有效的 地址
- 某些地址将不会返回数据对应'administrative_area_level_2'
- 这样做没有解决跨越多个县的美国城市的问题。相反,我认为API只是返回与单一经度/纬度相关联的县
address_string
相关问题
- 1. Python Geograpy在美国找不到城市
- 2. iPhone - 验证美国城市和州
- 3. TreeView。美国各州和城市
- 4. Travel API不适用于美国以外的城市 - 为什么?
- 5. 我将如何去寻找美国最长的邮寄城市名称?
- 6. 国家,城市和城镇
- 7. 查找美国城市的IP地址范围
- 8. GNU桑达格式美国地址,街道,城市,州,邮编
- 9. 将网站拆分为城市/国家的最佳方式?
- 10. 英国城镇/城市的php数组
- 11. 美国各州和城市距离彼此的距离
- 12. 美国各州和城市的Rails插件
- 13. 雅虎天气API只适用于美国的城市!
- 14. 国家城市州名单
- 15. 国家/地区/城市DB
- 16. 国家/城市/城镇+计数列表
- 17. 如何使用ggplot绘制美国城市?
- 18. 将500个美国城市绘制成地图
- 19. 如何获取OSM节点或城市的城市和国家?
- 20. 查找IP地址城市,国家Java
- 21. 如果选择“美国”作为国家,只验证城市,州和邮编
- 22. 我在哪里可以找到美国主要城市的数据库?
- 23. 我在哪里可以找到美国城市和州的XML列表?
- 24. 从地址获取城市,州和国家的最佳途径
- 25. 寻找具有所有美国邮政编码,州和最新城市的SQL DB
- 26. 检测用户的国家和城市
- 27. 国家,州和城市的PHP库
- 28. 来自街道+城市+国家的GPS
- 29. 城市的Android GeoPoints或国家
- 30. MKReverseGeocoder返回不是城市的城市?
路易斯安那州被分为教区和阿拉斯加州自治市。所以我猜只有48个50是有效的在您的问题 –
我认为这是好的作为一个限制,考虑到我的重点是德克萨斯州。 – Cucumber2
无论如何你都需要一个数据库。所以我认为这个问题应该是“我需要什么样的数据库/数据结构?” – splash