Sponsored Link
どうも3urpriseのヤマサキです。
今日はマップを使ったアプリで検索バーに入力した地名を緯度経度に変換しようのコーナーです。
それではスタート!
まずは検索バーを_mysearchBarとし設置している事を前提で話を進めます。
// 検索バーの内容のテキストが変更される度に呼ばれる
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
println(searchBar.text) // これで検索バーの値が取れる
}
// 検索バーにフォーカスが当たると呼ばれる
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
// searchBarからフォーカスを外す(=キーボードが隠れる)
_mysearchBar.resignFirstResponder()
// 目的地の文字列から座標検索
var geocoder = CLGeocoder()
geocoder.geocodeAddressString(_mysearchBar.text, {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? CLPlacemark {
// 地名を入力して検索リストに有れば緯度経度を取得
println(placemark.location.coordinate.latitude, placemark.location.coordinate.longitude)
} else {
// 検索リストに無ければ
println("存在しません")
}
})
}
これでマップと合わせて使えば検索バーにて検索した地名にピンを刺すなど応用できそうですね。
Sponsored Link
ツイート
SwiftにてUISearchBarを使ってジオコーディング