是否可以在 iOS 应用程序中获取特定位置的当前新闻?是否有一些 api 可用,我可以将位置作为参数传递并获取该位置的新闻?
4 回答
对于美国的本地新闻,您可以使用 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 可供您用于不同的国家/地区,例如BBC API更新:现在已关闭
你可以从一些地方获取新闻数据,比如这个调用 http://api.bbcnews.appengine.co.uk/stories/uk 更新:这也是 down。您可以改用他们的 RSS 提要。
CNN 也有它的新闻 RSS 提要 ,您可以在其中获取有关许多位置的新闻的 RSS 数据
- 世界
- 非洲
- 美洲
- 亚洲
- 欧洲
- 中东
- 我们
我很确定那里还有很多其他 API,我最喜欢的 API 之一是Ushahidi 网络
他们有一个公共 API,也有新闻项目的位置标签,你可以在这里了解更多
我认为这足以让您入门并向您展示开放 API 的可能性,如果您需要更多详细信息,请告诉我,如果您搜索正确,我很确定还有更多!
当您使用像 Google News 或 Patch 中的 API 或任何其他 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,您几乎可以从中获得所有地址信息:名称属性
- 地址字典
- ISO国家代码
- 国家
- 邮政编码
- 行政区
- 子行政区
- 地方性
- 次区域
- 通道
- 次通道
- 地区
有了这些信息,您几乎可以查询每个新闻 api。也是mostafa torbjorn berg News 提到的补丁中的 一个邮政编码
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 坐标。然后使用CLGeocoder 类参考的反向地理编码将坐标转换为街道地址。
一旦你有了一个有效的街道地址,你就可以根据你的城市/城镇使用任意数量的新闻提要或新闻 API(太多而无法列出)。