0

私はMKMapViewでMKLocalSearchを使用しています..次のように実装しています

extension MYClass: SendLocationDelegate{

    func sendCoOrdinates(loccoordinate:CLLocation, placemark:CLPlacemark){

        println(" Google VC coordinate is as \(loccoordinate.coordinate.longitude) \(loccoordinate.coordinate.latitude)")
        let location:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude:loccoordinate.coordinate.latitude, longitude: loccoordinate.coordinate.longitude)
        let theSpan : MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta:0.01)
        let theRegion : MKCoordinateRegion = MKCoordinateRegion(center: location, span: theSpan)
        self.mapView.setRegion(theRegion, animated: false)

        let request = MKLocalSearchRequest()
        request.region = mapView.region
        let search = MKLocalSearch(request: request)

        search.startWithCompletionHandler({(response: MKLocalSearchResponse!,
            error: NSError!) in

            if error != nil {
                println("Error occured in search: \(error.localizedDescription)")

            } else if response.mapItems.count == 0 {

                println("No matches found")

            } else {

                println("Matches found")

                println("\(response)")

            }
        })



    }


}

出力: Google VC 座標は 72.8561644 19.0176147 です。検索でエラーが発生しました: 操作を完了できませんでした。(MKErrorDomain エラー 1.)これはなぜですか?

EDITED:ただし、リクエストを次のように変更すると

let request = MKLocalSearchRequest()
 request.naturalLanguageQuery = "india"
 //request.region = mapView.region
 let search = MKLocalSearch(request: request)

私は良い反応を得ます

{boundingRegion = ""; mapItems = ( " {\n isCurrentLocation = 0;\n name = India;\n placemark = \"India, India @ <+23.04117260,+78.89180550> +/- 0.00m, region CLCircularRegion (identifier:'<+21.84329084, +82.78786665> 半径 2237301.34'、中心:<+21.84329084、+82.78786665>、半径:2237301.34m)\";\n}" ); }

4

1 に答える 1

0

すべてが正常に機能しています..自然言語クエリを含まないリクエストで間違いを犯しただけです.

 let request = MKLocalSearchRequest()
 request.region = mapView.region
 let search = MKLocalSearch(request: request)

この場合request.naturalLanguageQuery、nil に設定されています....したがって、不明なタイプの (MKErrorDomain エラー 1) を取得しました。Apple のドキュメントを参照してください。ここnaturalLanguageQueryに nil 値を含めることはできません...

let request = MKLocalSearchRequest()
 request.naturalLanguageQuery = "india"
 let search = MKLocalSearch(request: request)

パラメーターを使用regionして、検索結果のリストを指定した地域内または地域に近いものに絞り込むことができます。領域を指定しても、結果がすべて領域内にあるとは限りません。検索エンジンへのヒントにすぎません。したがってregion、ここではオプションとして機能できます。または、次のようにより良い結果をリクエストすることもできます

let request = MKLocalSearchRequest()
request.naturalLanguageQuery = "india"
request.region = mapView.region
let search = MKLocalSearch(request: request)
于 2015-05-21T12:56:39.607 に答える