ios - 如何在 Parse 中查询与 NSString 地址的距离?

标签 ios objective-c parse-platform

对于我的 iOS 应用程序,我需要根据距用户当前位置的距离来组织 Parse 对象的列表。每个 Parse 对象都有一个位置属性,但该位置是 NSString 形式的常规地址,而不是 GPS 坐标或 CLLocation。

对于这种情况我有两个问题:

  1. 如何查找 NSString 位置与用户当前位置之间的距离?

  2. 如何在 Parse 中查询距离(例如只显示 5 英里以内的对象)?

感谢您的帮助!

最佳答案

要执行距离查询,您需要一个 GeoPoint。有多种方法可以在给定字符串地址的情况下查找 GeoPoint。

您可以创建一个 Cloud Code after-save 方法,该方法使用 Google 查找 GeoPoint 并将其添加到记录中。从字符串中查找 GeoPoint 是一项开销很大的操作,您只想在数据发生变化时为每个数据点执行一次。

尝试根据查询中的字符串地址查找距离(需要每次都评估每条记录)会对地理查找设施造成不公平的负担,并且可能违反使用条款。

一旦您的数据中有了一个实际的 GeoPoint,那么查询就很容易了,根据 the documentation :

To limit the results using distance check out whereKey:nearGeoPoint:withinMiles, whereKey:nearGeoPoint:withinKilometers, and whereKey:nearGeoPoint:withinRadians.

关于ios - 如何在 Parse 中查询与 NSString 地址的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24356176/

相关文章:

ios - AVCaptureSession 最大持续时间

ios - 可以从哪个 View Controller 检查 segue 然后执行某些操作吗?

ios - 在 'tag' 类型的对象上找不到属性 'const _strong id'

javascript - 在我的 React Native 项目中安装 Parse SDK 时,它显示找不到变量 : localStorage error

ios - 静默通知不会在 TestFlight 中发送

javascript - 解析云码query.withinKilometers

ios - Objective-C 消息被发送到已释放的 'UIActivityIndicatorView' 对象

ios - 使用 SnapKit 时无法正确设置动画

ios - 是否有任何解决方法可以避免 SFSafariViewController 隐藏固定位置标题?

objective-c - 删除 NSMutableURLRequest 中的 HTTP header