Прямо сейчас я пишу карту в iOS и пытаюсь выяснить, как получить направление для каждого закодированного мной булавки, который постоянно установлен на карте.
Например, что я хочу, чтобы моя панель поиска - это когда я набираю имя одного из тех постоянных пинов, которые я поместил, панель поиска распознает, чтобы перейти прямо к этому пину, который яразмещены.
Мне нужно знать, как добраться до булавок, которые я поместил на мою карту.Я нажимаю на булавки, но не получаю направления к нему из текущего местоположения.Вот что я пытаюсь выяснить.
Вот что у меня есть для моих пинов, которые я поместил:
let location11 = CLLocationCoordinate2D( latitude: 33.232233, longitude: -111.232322)
let span11 = MKCoordinateSpanMake(0.02, 0.02)
let region11 = MKCoordinateRegion(center: location11, span: span11);
mapView.setRegion(region11, animated: true)
let Annotation10 = MKPointAnnotation()
Annotation10.coordinate = location11
Annotation10.title = " blahhh "
Annotation10.subtitle = "Campus"
mapView.addAnnotation (Annotation10)
А вот как я настроил свой делегат searchBar:
extension ViewController: UISearchBarDelegate {
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.endEditing(true)
let localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = searchBar.text
let region = MKCoordinateRegion(center: currentCoordinate, span: MKCoordinateSpan(latitudeDelta: 0.002, longitudeDelta: 0.002))
localSearchRequest.region = region
let localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.start { (response, _) in
guard let response = response else { return }
guard let firstMapItem = response.mapItems.first else
{ return }
self.getDirections(to: firstMapItem)
}
}
А вот мой делегат просмотра карты:
extension ViewController: MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKPolyline {
let renderer = MKPolylineRenderer(overlay: overlay)
renderer.strokeColor = .yellow
renderer.lineWidth = 5
return renderer
}
if overlay is MKCircle {
let renderer = MKCircleRenderer(overlay: overlay)
renderer.strokeColor = .red
renderer.fillColor = .red
renderer.alpha = 0.005
return renderer
}
return MKOverlayPathRenderer()
}
}