2017-05-16 3 views
0

Google에서 Swift와 함께 iOS 앱에 Google 지역 정보 자동 완성을 구현하기 위해이 Tutorial을 사용하고 있습니다.이 결과가 특정 위치로 제한되기를 시도하고 있습니다. link이 가능하지만 나에게 생명이 넘치므로 어떤 장소도 볼 수 없습니다. 그것은이 사용되는지 클래스라는 문서에위치로 이동 방법 Google 지역 정보 자동 완성?

import UIKit 
import GooglePlaces 

class ViewController: UIViewController { 

    var resultsViewController: GMSAutocompleteResultsViewController? 
    var searchController: UISearchController? 
    var resultView: UITextView? 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    resultsViewController = GMSAutocompleteResultsViewController() 
    resultsViewController?.delegate = self 

    searchController = UISearchController(searchResultsController: resultsViewController) 
    searchController?.searchResultsUpdater = resultsViewController 

    let subView = UIView(frame: CGRect(x: 0, y: 65.0, width: 350.0, height: 45.0)) 

    subView.addSubview((searchController?.searchBar)!) 
    view.addSubview(subView) 
    searchController?.searchBar.sizeToFit() 
    searchController?.hidesNavigationBarDuringPresentation = false 

    // When UISearchController presents the results view, present it in 
    // this view controller, not one further up the chain. 
    definesPresentationContext = true 
    } 
} 

// Handle the user's selection. 
extension ViewController: GMSAutocompleteResultsViewControllerDelegate { 
    func resultsController(_ resultsController: GMSAutocompleteResultsViewController, 
         didAutocompleteWith place: GMSPlace) { 
    searchController?.isActive = false 
    // Do something with the selected place. 
    print("Place name: \(place.name)") 
    print("Place address: \(place.formattedAddress)") 
    print("Place attributions: \(place.attributions)") 
    } 

    func resultsController(_ resultsController: GMSAutocompleteResultsViewController, 
         didFailAutocompleteWithError error: Error){ 
    // TODO: handle the error. 
    print("Error: ", error.localizedDescription) 
    } 

    // Turn the network activity indicator on and off again. 
    func didRequestAutocompletePredictions(forResultsController resultsController: GMSAutocompleteResultsViewController) { 
    UIApplication.shared.isNetworkActivityIndicatorVisible = true 
    } 

    func didUpdateAutocompletePredictions(forResultsController resultsController: GMSAutocompleteResultsViewController) { 
    UIApplication.shared.isNetworkActivityIndicatorVisible = false 
    } 
} 

답변

0

오른쪽 : .......... 그래서

을이 뷰 컨트롤러입니다.

GMSCoordinateBounds 개체는 결과를 위도 및 경도 경계로 지정된 특정 영역에 바이어스합니다.

참고 : 사람이 에펠 탑을 검색하는 경우이 경계 외부의 모든 것을 완전히 지울 수는 없지만 여전히 볼 수 있습니다. 그러나 결과의 99 %는 아마도이 범위 내에있을 것입니다. 그것은 바이어스 검색 일뿐입니다.

GMSCoordinateBounds 클래스의 경도와 위도를 지정하면됩니다.

그리고이 같이 사용되는 : 여기

let northEastBoundsCorner = CLLocationCoordinate2D(latitude: -33.843366, 
              longitude: 151.134002) 
let southWestBoundsCorner = CLLocationCoordinate2D(latitude: -33.875725, 
              longitude: 151.200349) 
let bounds = GMSCoordinateBounds(coordinate: neBoundsCorner, 
           coordinate: swBoundsCorner) 
func placeAutocomplete() { 
    let filter = GMSAutocompleteFilter() 
    filter.type = .establishment 
    placesClient.autocompleteQuery("Sydney Oper", bounds: bounds, filter: filter, callback: {(results, error) -> Void in 
    if let error = error { 
     print("Autocomplete error \(error)") 
     return 
    } 
    if let results = results { 
     for result in results { 
      print("Result \(result.attributedFullText) with placeID \(result.placeID)") 
     } 
    } 
}) } 

는 그들이 그것을 문서에서 URL 사용되는 경우 : 이 바보 같은 질문입니다 만 곳이 코드를 넣을 경우 Set the GMSCoordinateBounds of autocomplete

+0

죄송합니다? –