我正在尝试为餐馆开发一个送货系统,但我不知道如何解决这个问题。餐厅有五个地点;其中四个处于一种状态,另一种处于不同的状态。
他们只针对每个地点进行交付,具体取决于它的距离;他们还为每个地点设置了一些限制。
我的想法是:
我被困的地方
答案 0 :(得分:1)
尝试围绕餐厅位置设置可交付半径。你甚至可以画一个MKCircle来表达。
CLLocation * _storeLocation = [[CLLocation alloc] initWithLatitude:30.270135 longitude:-97.731270];
double deliverableRadius = 3 * 1609.34; // 3 miles (or the area they will deliver to)
MKCircle * circle = [MKCircle circleWithCenterCoordinate:storeLocation.coordinate radius:deliverableRadius];
[_mapView addOverlay:circle];
确定可交付区域后,您可以查看是否查看用户位置是否在此区域内。
答案 1 :(得分:0)
所以我认为一个简单的方法可能只是检查用户是否在餐馆的某个距离内(即“如果我离餐馆不到25英里,那么他们会送给我”)。
首先将餐厅位置的地址转换为gps坐标。有关详细信息,请参阅Converting Place Names Into Coordinates。
接下来,计算用户位置与每个餐厅位置之间的距离,并检查该距离是否小于最大传送距离。
可以找到计算两点之间距离的公式here。