如何找到天气预报城市ID?

时间:2015-01-11 03:51:05

标签: android weather forecasting

final String FORECAST_BASE_URL =
        "http://api.openweathermap.org/data/2.5/forecast/daily?";
final String QUERY_PARAM = "q";

您好。 我正在制作天气预报应用。但是当我使用“http://openweathermap.org”的API时, 我有麻烦如何获得城市代码或ID“q”? 我试图找到城市ID,但我不能。

示例代码按城市ID呼叫:

api.openweathermap.org/data/2.5/forecast/daily?id=524901

我听说“q”也用于“id”。 我的意思是

api.openweathermap.org/data/2.5/forecast/daily?q=524901

也是可能的。我想这样做。

那么,如何找到城市ID? 有人知道吗?

3 个答案:

答案 0 :(得分:3)

OpenWeatherMap支持中心提出了类似的问题。这是链接OpenWeatherMap

此外,这里还有指向城市列表及其各自ID的链接(只需按CTRL + F查找您想要的城市):List of Cities & IDs

答案 1 :(得分:1)

使用openweathermap您需要创建一个帐户 Here  之后,您可以生成将在地址栏中使用的API密钥....像这样http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID= *********************** ********只需用生成的密钥替换星号

答案 2 :(得分:0)

类似声音的应用程序需要在用户键入城市名称时搜索城市。您可以通过在某种类型的主机上运行OpenWeatherMap City Finder服务器(在Heroku,Docker主机上,也许以每月5美元的价格从Digital Ocean购买自己最便宜的VM)来实现,然后使用OWM City Finder Client访问该服务器并使用GPS和ID解析用户输入到城市JSON数组中的任何字符串。

OWM City Finder服务器不需要设置,只需在目标计算机上运行以下命令即可:

docker run --rm -ti -p25314:25314 mvysny/owm-city-finder-server:0.1

要测试服务器并执行城市查询,只需运行:

$ curl localhost:25314/city?query=helsinki
[{"id":658226,"name":"Helsinki","country":"FI","coord":{"lon":24.93417,"lat":60.17556}},{"id":658225,"name":"Helsinki","country":"FI","coord":{"lon":24.93545,"lat":60.169521}},{"id":658224,"name":"Helsinki","country":"FI","coord":{"lon":21.438101,"lat":60.60778}}]

您可以直接从您的应用程序访问REST,或者可以使用提供的客户端进行更轻松的访问。 在https://gitlab.com/mvysny/owm-city-finder/tree/master/owm-city-finder-server

中了解更多信息