【发布时间】:2014-07-11 07:06:41
【问题描述】:
我正在开发一个流星移动应用程序,该应用程序显示有关当地名胜古迹的信息,我想要显示的内容之一是每个位置的天气。我目前已经用 latlng 坐标存储了我的位置,并且可以按半径搜索它们。我想使用openweathermap api 来获取一些有用的“当前状况”信息,以便用户在查看条目时可以看到基本的天气数据。理想情况下,我想限制传出请求的数量以保持页面快速(并减少 API 请求)
我想知道我是否可以创建一个我定期更新的服务器端天气数据集合(每小时?),然后我的客户会查询(也许使用 mongo $near 查找?) - 这样我的所有数据是在流星中处理的,而不是每个客户端都出去从 API 中获取最新数据。我不想遍历列表中的所有位置并为每个位置单独调用 api,因为我有大约。 400 个地点(!)。恐怕我对 API 请求(以及流星本身)不熟悉,所以如果这是一个措辞不当的问题,我深表歉意。
我不完全确定这是否可行,或者它是否是最好的方法 - 任何建议(以及任何有用的代码 sn-ps 的链接!)将不胜感激!
编辑/更新!
好的,我还没有设法让这个工作,但我有一些关于数据的更有用的细节! 如果我向 openweather API 发出请求,我可以取回他们所有位置的数据(我想将其添加/更新到集合中)。然后我可以进行定期查找,而不是每次用户查看某个位置时都直接向他们发出客户端请求。 JSON 数据如下所示:
{
"message":"accurate",
"cod":"200",
"count":50,
"list":[
{
"id":2643076,
"name":"Marazion",
"coord":{
"lon":-5.47505,
"lat":50.125561
},
"main":{
"temp":292.15,
"pressure":1016,
"humidity":68,
"temp_min":292.15,
"temp_max":292.15
},
"dt":1403707800,
"wind":{
"speed":8.7,
"deg":110,
"gust":13.9
},
"sys":{
"country":""
},
"clouds":{
"all":75
},
"weather":[
{
"id":721,
"main":"Haze",
"description":"haze",
"icon":"50d"
}
]
}, ...
理想情况下,我想建立自己的本地“天气”集合,我可以使用 mongo 的 $near 进行搜索(以降低出站请求并加快速度),但我不知道这是否可行,因为数据回来了 - 我想我需要像这样构建我的位置数据才能使用地理搜索:
"location": {
"type": "Point",
"coordinates": [-5.47505,50.125561]
}
我的问题是:
- 如何构建该集合(我见过 this - 我可以做类似的事情并定期更新集合中的现有条目吗?)
- 它只需要存在于服务器还是客户端?
- 我是否需要处理数据才能使地理搜索正常工作?
- 这甚至是正确的方法吗??
编辑/更新2
这个问题是不是太长/太多了?感觉就是这样。也许我应该把它分开。
【问题讨论】:
标签: meteor weather-api