在iPhone中从纬度和经度获取当前位置的天气

时间:2013-02-18 07:20:13

标签: ios weather-api

我有当前位置纬度[17.382042000000000000]和经度[78.481727299999990000].

有没有办法根据纬度和经度找出天气? 是否有任何第三方免费API用于根据这些值查找天气? 任何人都可以为我提供这个问题的指南或网址吗?

5 个答案:

答案 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

这是端点: http://api.wunderground.com/api/API_KEY/conditions/forecast/alert/q/17.382042000000000000,78.48172729999999000.json

将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

获取天气预报