4

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

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

4

5 回答 5

4

另外,我建议检查OpenWeatherMap API。您可以免费使用它,我认为它可以帮助您。例如,在您的情况下,URL 可能如下所示:

api.openweathermap.org/data/2.5/weather?lat=17.38&lon=78.48

它将返回 JSON 格式的数据。有关更多详细信息,请查看 API 文档。

于 2014-01-03T18:28:50.667 回答
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 密钥替换 API_KEY。

于 2013-02-18T07:31:39.043 回答
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

于 2013-02-18T08:32:04.137 回答
0

是的,有一些 API 可用于此。查看其他一些 StackOverflow 问题:

通过 html5 地理位置获取天气

例如 Weather bug 有一个 API 方法,它可以获取 lat / long 位置:

http://developer.weatherbug.com/docs/read/WeatherBug_API_JSON

我相信还有更多。只需尝试几个,看看哪一个适合你。

于 2013-02-18T07:24:07.623 回答
0

yahoo 提供天气服务 - 在 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

获取您的天气报告

于 2013-02-18T07:24:56.743 回答