对于我的 iOS 应用程序,我需要根据距用户当前位置的距离来组织 Parse 对象的列表。每个 Parse 对象都有一个位置属性,但该位置是 NSString 形式的常规地址,而不是 GPS 坐标或 CLLocation。
对于这种情况我有两个问题:
如何查找 NSString 位置与用户当前位置之间的距离?
如何在 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
, andwhereKey:nearGeoPoint:withinRadians
.
关于ios - 如何在 Parse 中查询与 NSString 地址的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24356176/