是 GeoFilter 中的地址
Is Address Within 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
}
}
我正在 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
}
}