我有当前位置纬度[17.382042000000000000]
和经度[78.481727299999990000].
有没有办法根据纬度和经度找出天气? 是否有任何第三方免费API用于根据这些值查找天气? 任何人都可以为我提供这个问题的指南或网址吗?
答案 0 :(得分:3)
您可以使用以下网址。根据您的要求更改纬度和经度。
http://api.wunderground.com/auto/wui/geo/GeoLookupXML /index.xml?query=17.3820420000000000006,78.48172729999999000
要获取当前天气状况,您可以使用以下API端点。您必须从他们的站点生成API密钥。 - http://www.wunderground.com/weather/api
将API_KEY替换为您生成的API密钥。
答案 1 :(得分:2)
另外,我建议您查看OpenWeatherMap API。你可以免费使用它,我认为它可以帮助你。例如,在您的情况下,URL可能如下所示:
api.openweathermap.org/data/2.5/weather?lat=17.38&lon=78.48
它将以JSON格式返回数据。有关详细信息,请查看API文档。
答案 2 :(得分:1)
+(NSDictionary*)getWeatherForLocation:(CLLocation*)location
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSString *stringURL=[NSString stringWithFormat:@"http://api.wunderground.com/api/yourAPIKey/geolookup/forecast10day/q/%f,%f.json",location.coordinate.latitude,location.coordinate.longitude];
[request setURL:[NSURL URLWithString:stringURL]];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *dictionary=[stringData objectFromJSONString];
locationDic=[[NSDictionary alloc] initWithDictionary:[dictionary valueForKey:@"location"]];
NSLog(@"locations is %@",locationDic);
return [dictionary valueForKey:@"forecast"];
}
你可以通过传递lat long来直接使用api
http://api.wunderground.com/api/APPKey/geolookup/forecast10day/q/37.785834,-122.406417.json
答案 3 :(得分:0)
是的,有一些API可用于此。看看其他一些StackOverflow问题:
Get weather by html5 geolocation
e.g。 Weather bug有一个采用纬度/多头位置的API方法:
http://developer.weatherbug.com/docs/read/WeatherBug_API_JSON
我相信还有更多。试试看几个,看看哪个适合你。
答案 4 :(得分:0)
雅虎提供天气服务 - 在iPhone上你需要
1) get your longitude & latitude using CoreLocation
2) use
http://query.yahooapis.com/v1/public/yql?q=select+place+from+flickr.places+where+lat=%f+and+lon=%f
to get a woeid (WhereOnEarth ID)
1)use
http://weather.yahooapis.com/forecastrss?w=%@&u=c
获取天气预报