我正在使用Wunderground API,并且正在努力构建我的骨干应用程序。我根据纬度/经度发出一个POST请求,然后得到一堆位置(ID和一个链接),我可以在另一个POST请求中使用它来获取实际的天气数据。
我认为我可能想要两个模型:位置和天气,它们都会收到不同的数据。也许有更好的方法来解决这个问题(也许是解析)。
以下是该位置的位置api:
{
response: {
version: "0.1",
termsofService: "http://www.wunderground.com/weather/api/d/terms.html",
features: {
geolookup: 1
}
},
location: {
type: "CITY",
country: "US",
country_iso3166: "US",
country_name: "USA",
state: "CA",
city: "San Francisco",
tz_short: "PST",
tz_long: "America/Los_Angeles",
lat: "37.790000",
lon: "-122.390000",
zip: "94126",
magic: "1",
wmo: "99999",
l: "/q/zmw:94126.1.99999",
requesturl: "US/CA/San_Francisco.html",
wuiurl: "http://www.wunderground.com/US/CA/San_Francisco.html",
nearby_weather_stations: {
airport: {
station: [
{
city: "Oakland",
state: "CA",
country: "US",
icao: "KOAK",
lat: "37.71780014",
lon: "-122.23294067"
},
{
city: "San Francisco",
state: "CA",
country: "US",
icao: "KSFO",
lat: "37.61960983",
lon: "-122.36557770"
},
{
city: "Hayward",
state: "CA",
country: "US",
icao: "KHWD",
lat: "37.65891647",
lon: "-122.12174988"
},
{
city: "Half Moon Bay",
state: "CA",
country: "US",
icao: "KHAF",
lat: "37.51361084",
lon: "-122.49958801"
}
]
},
pws: {
station: [
{
neighborhood: "NOS_PORTS Pier 1, CA",
city: "San Francisco",
state: "CA",
country: "US",
id: "MPXOC1",
lat: 37.798,
lon: -122.392975,
distance_km: 0,
distance_mi: 0
},
{
neighborhood: "SOMA South Park",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR327",
lat: 37.782135,
lon: -122.393753,
distance_km: 0,
distance_mi: 0
},
{
neighborhood: "South of Market",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR314",
lat: 37.779007,
lon: -122.394188,
distance_km: 1,
distance_mi: 0
},
{
neighborhood: "Weather Underground HQ",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR236",
lat: 37.793293,
lon: -122.404442,
distance_km: 1,
distance_mi: 0
},
{
neighborhood: "South Beach",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR349",
lat: 37.777248,
lon: -122.392944,
distance_km: 1,
distance_mi: 0
},
{
neighborhood: "South of Market",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR355",
lat: 37.776611,
lon: -122.39399,
distance_km: 1,
distance_mi: 0
},
{
neighborhood: "SOMA",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR231",
lat: 37.782803,
lon: -122.407166,
distance_km: 1,
distance_mi: 1
},
{
neighborhood: "SOMA",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR131",
lat: 37.778488,
lon: -122.408005,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "Telegraph Hill",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR169",
lat: 37.804367,
lon: -122.40757,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "North Beach",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR137",
lat: 37.799515,
lon: -122.412498,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "North Beach",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR337",
lat: 37.803802,
lon: -122.409508,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "SoMa",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR328",
lat: 37.77359,
lon: -122.411018,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "NEMA",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR291",
lat: 37.776077,
lon: -122.417542,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "Mission District",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR326",
lat: 37.767326,
lon: -122.408096,
distance_km: 2,
distance_mi: 1
},
{
neighborhood: "SOMA - Near Van Ness",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR58",
lat: 37.773285,
lon: -122.417725,
distance_km: 3,
distance_mi: 1
},
{
neighborhood: "Mission District",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR335",
lat: 37.763035,
lon: -122.412949,
distance_km: 3,
distance_mi: 2
},
{
neighborhood: "Aquatic Park Entrance Light 1",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR359",
lat: 37.812,
lon: -122.421204,
distance_km: 3,
distance_mi: 2
},
{
neighborhood: "Mission (at Bar and Burrito)",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR142",
lat: 37.76553,
lon: -122.422913,
distance_km: 3,
distance_mi: 2
},
{
neighborhood: "The Mission, 19th and Folsom",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR259",
lat: 37.759354,
lon: -122.415085,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "The Mission: Even the weather is hip",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR79",
lat: 37.754234,
lon: -122.411728,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "Marina District",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR350",
lat: 37.799656,
lon: -122.439316,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "Pacific Heights",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR166",
lat: 37.789127,
lon: -122.441307,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "Drew School",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR155",
lat: 37.787407,
lon: -122.442177,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "Pacific Heights",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR339",
lat: 37.787582,
lon: -122.444481,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "The Castro",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR354",
lat: 37.767139,
lon: -122.437416,
distance_km: 4,
distance_mi: 2
},
{
neighborhood: "Treasure Island L6",
city: "San Francisco",
state: "CA",
country: "US",
id: "KCASANFR360",
lat: 37.833248,
lon: -122.372498,
distance_km: 5,
distance_mi: 3
}
]
}
}
}
}
答案 0 :(得分:0)
我建议您将所有数据存储在主模型中,并为任何特定需求编写getter,如:
// this goes inside the model defitionition
getNearbyStations: function(){
return new Backbone.Collection(this.get('location').nearby_weather_stations);
}
通常应该有不同的REST API端点来获取数据,但在这种情况下,当您获得所有批量数据时,我看不到很多选项。
作为一种用法,你可以事后说:
var location = new LocationModel();
// after the stations are loaded ...
var myLocations = location.getNearbyStations(); // will return the collection defined above