gpt4 book ai didi

ios - 找到离坐标最近的商店

转载 作者:行者123 更新时间:2023-11-28 06:19:30 24 4
gpt4 key购买 nike

我的代码现在可以找到本地区域中的所有地点并将坐标追加到一个数组中。

func performSearch() {
matchingItems.removeAll()

let request = MKLocalSearchRequest()
request.naturalLanguageQuery = "starbucks"
request.region = mapView.region

let search = MKLocalSearch(request: request)

search.start(completionHandler: {(response, error) in

if error != nil {
print("Error occured in search: \(error!.localizedDescription)")
} else if response!.mapItems.count == 0 {
print("No matches found")
} else {
print("Matches found")

for item in response!.mapItems {


self.matchingItems.append(item.placemark.coordinate)
print("Matching items = \(self.matchingItems)")

let annotation = MKPointAnnotation()
annotation.coordinate = item.placemark.coordinate
annotation.title = item.name
self.mapView.addAnnotation(annotation)
}
}
})
}

但我想要的是找到离我的客户最近的商店。我将客户的坐标保存在一个变量中。谢谢

最佳答案

我相信 MkMapItem 有一个名为 placemark 的 CLPlacemark 属性,否则您可以使用此 CLGeocoder 函数返回一个仅包含地址的 CLPlacemark:

func geocodeAddressString(_ addressString: String, 
completionHandler: @escaping CLGeocodeCompletionHandler)

然后使用 CLPlacemark 的位置 (CLLocation) 属性的 .distance 函数来比较用户的当前位置,如下所示:

let distanceInMeters = placemark.location.distance(from: MKUserLocation) // result is in meters

然后将其添加到要排序的数组中:

var locationsArray:[Double] = []
locationsArray.append(distanceInMeters)
//then sort the array
locationsArray.sort{ $0 < $1 }

然后将这个排序数组用于您的 tableView 或 Collection View ...希望这可以帮助!干杯!

关于ios - 找到离坐标最近的商店,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44089881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com