Module: MotionGeocoder::AppleApi::Place
- Defined in:
- lib/motion-geocoder/apple_api/place.rb
Constant Summary collapse
- @@local_search =
nil
Class Method Summary collapse
Class Method Details
.auto_complete(input, params = {}, &block) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/motion-geocoder/apple_api/place.rb', line 18 def self.auto_complete(input, params={}, &block) @@local_search.cancel if !!@@local_search request = build_request input, params @@local_search = MKLocalSearch.alloc.initWithRequest request @@local_search.startWithCompletionHandler lambda {|response, e| if response && !response.mapItems.empty? results = response.mapItems.map do |item| { name: item.name, address: item.placemark.title, coordinate: { lat: item.placemark.coordinate.latitude, lng: item.placemark.coordinate.longitude } } end block.call results end } end |
.build_request(input, params) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/motion-geocoder/apple_api/place.rb', line 6 def self.build_request(input, params) lat = params[:lat] lng = params[:lng] rad = params[:radius] || 5000 region = MKCoordinateRegionMakeWithDistance CLLocationCoordinate2DMake(lat, lng), rad, rad request = MKLocalSearchRequest.alloc.init request.region = region request.naturalLanguageQuery = NSString.stringWithUTF8String(input) request end |