首页 文章

Weather API,如何将搜索参数组合到更详细的位置(城市,州,国家等)以防止位置混淆

提问于
浏览
0

我经常使用openweathermap.org的api来玩新平台,我遇到了无法定义足够的查询来查找某些城市的同样问题 .

api适用于伦敦,旧金山等大城市,但我对较小的城市或城市有着共同的名称有问题 . 例如,加利福尼亚州有一个名为Lafayette的城市,但路易斯安那州还有一个更大的城市,也被称为Lafayette .

对此网址的GET请求将返回路易斯安那http://api.openweathermap.org/data/2.5/find?q=Lafayette&units=imperial&APPID= api_key的天气

并且对此网址的GET请求(使用',ca')将返回一些完全不同的位置的天气(城市ID为0)http://api.openweathermap.org/data/2.5/find?q=Lafayette,ca&units=imperial&APPID= api_key

我是新手,所以请告诉我是否有一种简单的方法来指定特定的位置查询以防止返回错误位置的数据 .

1 回答

  • 2

    如果使用城市不能直接工作,还有其他两个选项 . 一个是使用它的纬度和经度,另一个是使用它的id .

    Latitude/Longitude method:

    使用谷歌 Map 查找您想要的城市 . 右键单击中心某处并选择 What's here . 您将获得使用纬度和经度坐标,如下所示:

    http://api.openweathermap.org/data/2.5/find?lat=37.9&lon=-122.1&units=imperial&APPID=62908047dc0cdba22f4915a3a79658fa
    

    City ID method:

    我显示这个选项第二,因为你想获得大约lat / lon以确保你找到正确的id . 查看http://openweathermap.org/help/city_list.txt并搜索城市(使用Ctrl-F) . 一步一步,直到找到具有类似Lat / Lon坐标的那个,如:

    5364226 Lafayette   37.885761   -122.118019 US
    

    所以现在要使用的URL是

    http://api.openweathermap.org/data/2.5/weather?id=5364226& APPID=62908047dc0cdba22f4915a3a79658fa
    

    Note: 使用ID方法,如果您使用find,我确实发现您收到错误?在网址中 . 如果你使用天气?然后它返回该城市的有效数据 .

相关问题