SwiftにてUISearchBarを使ってジオコーディング

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を使ってジオコーディング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です