不知道有没有人知道解决这个问题的方法-我正在建立一个(半)简单的天气应用程序与OpenWeatherMap使用swiftUI。基本上完成并添加了一些最后的润色。希望能够让用户选择城市之间,如果有一个以上的城市同名,但据我所知,唯一访问完整的城市名称列表OpenWeatherMap提供的是一个压缩的JSON,没有API调用,而且它太大了,不能包含在包中。
此处是指向列表的链接-http://bulk.openweathermap.org/sample/
据我所知,在无法查看城市列表的情况下,似乎唯一指定正确城市的方法是在搜索中添加逗号和国家代码。例如,“罗马”返回美国的位置,“rome,it”返回意大利罗马。这不是一个很好的用户体验。
我是不是太傻了错过了什么?
2条答案
按热度按时间sd2nnvve1#
也许OpenWeather Geocoding API在2021年还没有,但现在已经有了。你可以使用这个API从世界各地的城市天气数据库中搜索它们。
https://openweathermap.org/api/geocoding-api
如果您只查询城市名称(没有州和/或国家),则会返回匹配项列表。例如,如果您搜索“都柏林”并限制为5个结果,则会返回爱尔兰都柏林和美国4个名为Dublin的城市。然后,用户可以从列表中选择以确认正确的城市。
这似乎是他们推荐的方法,可以通过名称获得一个城市的纬度和经度,然后查询它的预测。
du7egjpx2#
嘿,为了得到这个列表,你必须通过编程创建一个tableview,它是主视图高度的一半(最初将其设置为隐藏),并且当有人与searchBar或TextField交互时,它应该可见(你需要让它在tableview或searchBar的委托方法中可见,不管你用的是什么),然后在tableview中呈现城市名称,就这样,这将是很容易的,如果你知道一点编程用户界面,如果不看一些YouTube视频由肖恩艾伦对编程用户界面,你应该很好去!!祝你好运