// 애플 가로수길 위도, 경도
let coordinate = CLLocationCoordinate2D(latitude: 37.52086970595338, longitude: 127.0227724313736)
// 줌레벨 설정
let span = MKCoordinateSpan(latitudeDelta: 0.003, longitudeDelta: 0.003)
let region = MKCoordinateRegion(center: coordinate, span: span)
self.mapView.setRegion(region, animated: true)
// 마커 생성
let annotation = MKPointAnnotation()
annotation.coordinate = coordinate // 마커 좌표
annotation.title = "Apple 가로수길" // 마커 이름
self.mapView.addAnnotation(annotation)
self.mapView.setUserTrackingMode(.follow, animated: true)
extension SearchPlaceViewController: UISearchBarDelegate{
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchText == "" {
searchResults.removeAll()
searchResultTableView.reloadData()
}
// 사용자가 search bar 에 입력한 text를 자동완성 대상에 넣는다
searchCompleter.queryFragment = searchText
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
dismiss(animated: true, completion: nil)
}
}
extension SearchPlaceViewController {
// 자동완성 완료시 결과를 받는 method
func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) {
searchResults = completer.results
searchResultTableView.reloadData()
}
func completer(_ completer: MKLocalSearchCompleter, didFailWithError error: Error) {
print("---> error : \(error)")
}
}
// 선택된 위치의 정보 가져오기
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedResult = searchResults[indexPath.row]
let searchRequest = MKLocalSearch.Request(completion: selectedResult)
let search = MKLocalSearch(request: searchRequest)
search.start { (response, error) in
guard error == nil else{
print("---> error : \(String(describing: error))")
return
}
guard let placeMark = response?.mapItems[0].placemark else {
return
}
let lat = placeMark.coordinate.latitude
let lng = placeMark.coordinate.longitude
print("----> coordinate : \(lat) \(lng)")
}
}
네이버 맵, 카카오 맵, 구글 맵 다 돌고 MapKit 존재 알아버리기••• 다른 앱은 장소 추가를 어떻게 표현했는지 둘러보던 중 apple 지도를 사용하는걸 발견했다. 왜 그동안 애플지도 사용할 생각을 안했을까.. 지금이라도 발견한게 천만다행이다. 구글맵 자동완성기능은 몇 번 검색안했는데도 요청횟수가 불어 친구들도 사용한다면 돈을 내야되기 때문에..ㅋ 백수인 나는 MapKit이 역시 좋다 😭 주말엔 나도모르게 게을러지지만 다행히 오늘은 컴퓨터 앞에 앉기 성공했다! 약속이 있어도 1일1커밋 습관 잃지 말자 .. ⭐️ 내일도 화이팅! 이번주에 완성해보자!