在iOS应用程序中是否可以获取特定位置的最新消息?是否有一些api可用于我可以将位置作为参数传递并获取该位置的新闻?
答案 0 :(得分:8)
对于美国的本地新闻,您可以使用Patch api,它可以获取邮政编码,州或甚至社区的新闻。
以下是其API页面中的一些示例:
邮政编码新闻
http://news-api.patch.com/v1.1/zipcodes/{ZIP}/stories?dev_key={key}&sig={signature}
州的新闻
http://news-api.patch.com/v1.1/states/{state name}/stories?dev_key={key}&sig={signature}
城市新闻
http://news-api.patch.com/v1.0/states/ca/cities/san%20francisco/stories?dev_key={key}&sig={signature}
使用GPS坐标的新闻
http://news-api.patch.com/v1.1/nearby/{latitude},{longitude}/stories?dev_key={key}&sig={signature}
响应将包含大量元数据,标题,故事,附件,甚至返回的新闻项目位置的GPS坐标,以及大量其他功能
现在这只是美国的缺点,还有许多其他API可以用于不同的国家/地区,here's the BBC API例如更新:现在已经停止了
您可以从地方抓取新闻数据,例如此通话 http://api.bbcnews.appengine.co.uk/stories/uk 更新:这也是。您可以改用their RSS feeds。
CNN还有news RSS feed 您可以在哪里获取有关许多地方新闻的RSS数据
我很确定那里有很多其他的API,我最喜欢的是Ushahidi network
他们有一个公共API,也有新闻条目的位置标记,您可以了解更多here
我认为这足以让您入门并向您展示开放API的可能性,如果您需要更多详细信息,请告知我们,我非常确定如果您搜索正确,还有更多其他内容!
答案 1 :(得分:4)
答案 2 :(得分:2)
当您使用Google新闻等API或Patch或其他任何API时。大多数人不接受GPS搜索位置。他们需要合格的邮政编码或城市名称或其他人类可读的位置数据。
要确定用户当前所在的地址,您需要CLGeocoder反向查找给定GPS坐标的地址。 这可以这样做:
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:cllocationToSearchForNews completionHandler:
^(NSArray *placemarks, NSError *error) {
//Get nearby address
CLPlacemark *placemark = [placemarks objectAtIndex:0];
//post of the placemark
NSString *postalCode = placemark.postalCode;
//String to hold address
NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
}];
根据GPS位置计算出CLPlacemark,您几乎可以获得每个地址信息: 名称属性
使用此信息,您几乎可以查询每个新闻API。补丁中提到的here mostafa torbjorn berg 邮政编码新闻
http://news-api.patch.com/v1.1/zipcodes/{ZIP}/stories?dev_key={key}&sig={signature}
州的新闻
http://news-api.patch.com/v1.1/states/{state name}/stories?dev_key={key}&sig={signature}
城市新闻
http://news-api.patch.com/v1.0/states/ca/cities/san%20francisco/stories?dev_key={key}&sig={signature}
使用GPS坐标的新闻
http://news-api.patch.com/v1.1/nearby/{latitude},{longitude}/stories?dev_key={key}&sig={signature}
答案 3 :(得分:0)
首先获取您当前的GPS坐标。然后使用CLGeocoder Class Reference的反向地理编码将坐标转换为街道地址。
一旦您有了工作街道地址,您就可以根据您所在的城市/城镇使用任意数量的新闻源或新闻API(太多无法列出)。