ios - 是 GeoFilter 中的地址
问题描述
我正在 Swift 中创建一个交付应用程序,我试图将订购限制在用户所处的状态。我已经对大部分状态进行了地理围栏,但是我不确定是否可以检查:
- 用户在订单字段中输入的地址位于地理围栏内。
现在,我已经对用户输入的地址进行了反向地理编码,并且它们被保存在变量中,但是,我没有看到太多关于此或如何进行检查的文档。如果您对如何执行此操作有任何想法或是否可行,我们将不胜感激。
解决方案
为一个州的不规则边界设置围栏是很复杂的。您可以CLPlacemark
从用户输入的地址进行地理编码的坐标创建一个。然后,访问其administrativeArea
变量以获取状态。
var userLocation: CLLocation!
// Then, when your view loads or elswhere:
guard userLocation != nil else { return }
// Geocode the location for setting the user placemark.
let geocoder: CLGeocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(userLocation,
completionHandler: { (placemarks, error) -> Void in
DispatchQueue.main.async {
guard let placemarks = placemarks,
placemarks.count > 0 else { return }
self.setUserPlacemark(placemarks)
}
})
}
private func setUserPlacemark(_ placemarks: [CLPlacemark]) {
guard (placemarks.count > 0) else { return }
let placemark: CLPlacemark = placemarks[0]
if placemark.administrativeArea != nil
{
// Do something with placemark.administrativeArea
}
}
推荐阅读
- java - Change the background slowly while scrolling
- gitlab - GitLab api 用于了解合并请求中的目标分支
- rethinkdb - 更新嵌套对象属性 RethinkDB
- c++ - 如何在线程c ++中将自定义类作为参数传递
- java - 如何在java中获取带有字符串变量的对象
- java - Hyperledger Fabric:为什么添加此交易会导致ContractException [错误:无法将交易发送到orderer]?
- asp.net - ASP.NET MVC 使用列表创建类
- python - 如何在 Python 中使用 MATLAB 中的 [C2, ia, ic] = unique(A, 'stable')?
- python - 使用相同的视图来管理 ajax 和非 ajax 请求:如何运行一个函数来返回带有 zip 文件夹的 HttpResponse?
- angular - 如何通过效果打开模态并在调度特定操作后关闭它