问题描述
当前我们有一个坐标数组,这些坐标将勾勒出矩形形状。
var coordinatesArray: [CLLocationCoordinate2D] = []
override init() {
super.init()
//top left
coordinatesArray.append(CLLocationCoordinate2D(latitude: 32.7915055,longitude: -96.8028408))
//top right
coordinatesArray.append(CLLocationCoordinate2D(latitude: 32.7919914,longitude: -96.8022031))
//bottom left
coordinatesArray.append(CLLocationCoordinate2D(latitude: 32.7910108,longitude: -96.8025008))
//bottom right
coordinatesArray.append(CLLocationCoordinate2D(latitude: 32.7915926,longitude: -96.8016962))
}
截至目前,它要求监视一个圆形区域:
let geoFenceRegion:CLCircularRegion = CLCircularRegion(center: CLLocationCoordinate2DMake(32.7915926,-96.8016962),radius: 100,identifier: "Dallas")
我们想要的是适合坐标形状的地理围栏。几年前,我看到这篇文章指出您无法创建自定义区域:
这是否有可能创建自定义形状区域?
解决方法
不,据我所知,地理围栏始终是圆形的。您可以组合多个较小的圆形区域来创建更接近所需形状的形状(尽管位置区域的总数有相当小的限制(如果有内存,则总数为20)
,您可以使用第三方 API(如 TomTom 的 API)来实现。您可以创建圆圈、螺旋线、走廊,将它们存储在云中,甚至在跟踪对象进入、退出或停留时触发事件。
https://developer.tomtom.com/geofencing-api/geofencing-api-documentation