2017-02-04 7 views
0

MKLocalSearchを使用して場所を検索し、結果を地図に表示しています。 問題は、レストランが別の状態にあるなどのレストランが別の状態になった場合、結果を自分の地域に限定したい場合があるということです。 は、ここに私のコードMKLocalSearchを地域に限定する

http://pastebin.com/89TxwR7X

 let searchRadius: CLLocationDistance = 10000 
    let region = MKCoordinateRegionMakeWithDistance(location.coordinate, searchRadius * 2.0, searchRadius * 2.0) 

    map.setRegion(region, animated: true) 

     let request = MKLocalSearchRequest() 
    request.naturalLanguageQuery = getRandomPlace() 
    request.region = map.region 

    let search = MKLocalSearch(request: request) 
    search.start { response, error in 
     guard let response = response else { 
      print("There was an error searching for: \(request.naturalLanguageQuery) error: \(error)") 
      return 
     } 

     for item in response.mapItems { 
      self.dropPinZoomIn(item.placemark) 
     } 
    } 

答えて

1

あなたは、いくつかの人工的な境界を越えている結果を含めてから応答を防ぐことはできませんです。あなたの要求に応じてregionを定義しました。結果はその地域を優先します。しかしその場合でも、docsは非常に明確です。

地域を指定しても、結果がすべて地域内にあることは保証されません。それは単に検索エンジンへのヒントです。

だから、あなたが得るものはあなたが得るものです。サーバーが返す結果をサーバーが返すのを防ぐことはできません。

あなたそしてが返さresponseマップアイテムとないを介して実行したい場合は、彼らがどこにあるか、あなたが好きではないので、それは完全にあなた次第です、それらのいくつかのために目印を作ります。しかしコードはではありません。です。 のすべての目印を盲目的に作成しています。すべてです。