- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在阿姆斯特丹
的keizersgracht
拍了张照片。我正在构建一个功能,如果照片位置与 Foursquare field 之间存在严格匹配,我会在照片拍摄位置添加一个位置。否则,我希望结果为 nil
。
可以在此处找到我正在调用的 Foursquare API 的文档:https://developer.foursquare.com/docs/venues/search
因为我不知道照片是在什么样的地点拍摄的,所以我不能添加一个query
参数,它从选项中排除了intent=match
.作为解决方法,我选择使用 intent=checkin
并将几乎所有 categoryId 的
添加到请求中。
我的请求现在看起来像这样:
//latitude & longitude are taken as parameters to the method
NSString *clientId = @"redacted";
NSString *clientSecret = @"redacted";
NSString *version =@"20140806";
NSString *limit = @"1";
NSString *radius = @"1";
NSString *categoryId = @"4d4b7104d754a06370d81259,4bf58dd8d48988d1b4941735,4bf58dd8d48988d1b2941735,4bf58dd8d48988d1a8941735,4bf58dd8d48988d1ad941735,4d4b7105d754a06373d81259,4d4b7105d754a06374d81259,4d4b7105d754a06376d81259,4d4b7105d754a06377d81259,4d4b7105d754a06375d81259,4e67e38e036454776db1fb3a,4d4b7105d754a06378d81259,4d4b7105d754a06379d81259"; //almost all the cat id's
NSDictionary *venueResponse = [self getDataFrom:[NSString stringWithFormat:@"https://api.foursquare.com/v2/venues/search?client_id=%@&client_secret=%@&v=%@&ll=%@,%@&m=foursquare&limit=%@&radius=%@&intent=checkin&categoryId=%@", clientId, clientSecret, version, lat, lng, limit, radius, categoryId]];
NSLog(@"%@",venueResponse);
方法 getDataFrom
是关于发出一个简单的 GET 请求。
但是,当我经过阿姆斯特丹市中心的某个位置时,我得到了超出半径的结果,如下所示:(片段)
cc = NL;
city = Amsterdam;
country = Netherlands;
distance = 24;
formattedAddress = (
Amsterdam,
Netherlands
);
这很奇怪,因为我专门添加了 1 的半径。
可能是什么原因导致的,我该怎么办?
最佳答案
我建议放弃半径参数。您的设备有一个位置。与其构造一个半径这么小的请求(你的 iPhone 不太可能在其位置上具有 1 米的精度)和如此多的类别,你可以请求可能的附近位置(intent=checkin 确实如此) ) 并简单地枚举返回的数据以找到距离您的设备位置最短的地方(如@Acey 提到的那样)。您可以使用 Core Location 中提供的 API 或使用每个紧凑 field 返回的距离自行计算。如果您不使用 radius 参数,则不需要包含 categoryIds 或查询。 (此外,由于 iPhone 上的位置精度可能会有所不同,您肯定会有一些情况需要解决!):)
此外,如果该应用仅适用于某一特定类别地点(例如,咖啡店)的照片,那么在您的 GET 请求中请求该 categoryId 是有意义的。除非我误解了,否则您似乎只是因为您认为需要包含 radius 参数而包含 categoryIds,我认为这不是必需的。
如果您希望为特定用户提供“最佳”匹配,您将需要允许该用户使用他们的 Foursquare 帐户进行身份验证。然后,Foursquare 将返回“最佳”匹配场所,该场所可能至少基于他们的签到历史为该用户量身定制。
此外,如果您将此数据保留在您的应用程序中并且不想向 Foursquare 提供身份验证,您可以使用用户的累积数据在设备上创建自己的算法,以帮助确定用户所在的位置当他们拍摄 future 的照片时。
祝您构建应用程序顺利。似乎是个不错的主意,但需要考虑一些很好的挑战。
关于ios - Foursquare field 搜索 API 返回超出半径的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222815/
我查看了 Foursquare API 文档,但我找不到让 Foursquare 告诉我用户通过特定 checkin 获得多少积分的方法。 最佳答案 checkin 响应有一个字段 score文档中(
我正在开发一款允许用户搜索 Foursquare 的 iPhone 应用程序。我正在使用 venues/explore 端点进行搜索,效果很好,但结果不包括地点或 priceTier 的图像。 现在我
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
可以在网站上添加 Foursquare 签到功能吗? 最佳答案 虽然您可以在网站上提供签到功能,但请谨慎使用并意识到可能难以遵守适当的 Foursquare API 要求。 (张贴者 amelvin
我已经浏览了foursquare api,但找不到我想要的。 我需要获取所有地名、城市名称、国家/地区名称以及经度和纬度。 有具体的 api url 吗? 提前致谢。 最佳答案 如果您可以构建一个好的
我已经查看了 foursquare api,但是找不到我想要的。 我需要获取所有地名、城市名、国家名和经纬度。 是否有任何特定的 api url? 提前致谢。 最佳答案 如果您可以构建一个好的守护进程
提前感谢您的宝贵时间。 我想知道如何通过传递 Foursquare 类别 ID 以编程方式获取 Foursquare 类别的相应图像。 p> 我已经阅读了 API 文档,但到目前为止还没有找到解决方案
我正在尝试获得对 specific restaurant 的评论使用 Foursquare API,但我没有得到与 Foursquare 网站上相同的(所有)结果。 我使用了 Foursquare A
这是我的链接,它提供了 foursuqare field 的结果,但是当我应用从 0 到 2 等的偏移量时,它在每次运行中都为我提供了相同的结果。 https://api.foursquare.com
Foursquare API v2 不支持消费者的多个回调 URL 有什么原因吗?必须为每个测试环境定义一个全新的应用程序,这对开发运营来说是一个很大的障碍。据我所知,没有其他主要网络将应用重定向限制
有谁知道是否可以从移动网页启动 iPhone 或 Android Foursquare 应用程序?我们可以使用自定义 URL 方案吗? 如果用户安装了应用程序而不是网站,我们的客户希望为用户提供使用该
新的 field url 更漂亮,但 ID 不存在,并且没有机制从漂亮的 url 中查找 ID。 例如,这个特定的 url: https://foursquare.com/felice_83 如何查询
包含 categoryId 参数时,我从 API 查询中获得了意外结果。 例如,当使用以下参数在马萨诸塞州波士顿搜索“The Citizen Public House”时 ll: 42.3489027
我正在开发一个应用程序,它通过 Foursquare 的原生 oauth for Android 库连接到 Foursquare。我已经实现了 Foursquare 在其 github 个人资料中建议
在 Foursquare API Explorer 窗口中,我们使用端点“venues/search?ll=39.8647,-86.2604&intent=browse&radius=20000&li
我从 Foursquare API 开始,在 Python ,而且我不确定为什么我无法进行身份验证。 按照教程,到目前为止,我有这段代码: import foursquare client = fou
我正在调用 Foursquare Venue API 来获取伦敦的所有美食场所。 使用的API是:https://api.foursquare.com/v2/venues/explore?ll=51.
今天早上,我看到 Foursquare 将其单一服务拆分为 2 个 - 一个称为 Swarm,另一个保留 Foursquare 名称。我查看了 Foursquare 开发者博客,但(目前)还没有看到任
这对我来说没有多大意义,我希望有人可以对这里发生的事情以及我如何解决它有所了解。 如果我这样查询: https://api.foursquare.com/v2/venues/search?ll=37.
是否可以以贪婪的方式从foursquare抓取签到数据? (即使我与所有用户都没有友谊)就像抓取公开可用的 twitter 消息一样。如果您有任何经验或建议,请分享。谢谢。 最佳答案 如果您有包含指向
我是一名优秀的程序员,十分优秀!