Search

public protocol Search

Defines common interface to provide search functionality.

  • This method provides the capability to search places and POIs meeting various criteria.

    Declaration

    Swift

    func search(options: SearchOptions, completion: @escaping (Result<SearchResponse, Error>) -> ())

    Parameters

    options

    The SearchOptions structure to limit the results.

    completion

    The completion closure is called after the response to the request has been processed. If no errors occurred, SearchResponse contains an array of search results and summary information.

  • The Autocomplete Search feature can predict what a user is searching. The prediction is based on what they have already typed into the search field. It can identify entities within a user’s input and suggest them as potential search queries. This feature optimizes the accuracy of the search results by offering relevant suggestions and completing the user’s input.

    Use Autocomplete Search to elevate your application by delivering swift, error-free searches, thus enhancing efficiency. This feature also stimulates user exploration, fostering engagement.

    Example of an Autocomplete request the query “mat” for Amstardam in 100-km radius:

    let options = AutocompleteOptions(
        query: "mar",
        position: .AMSTERDAM,
        radius: Measurement(value: 100, unit: .kilometers)
    )
    search.autocomplete(options: options) { result in
        if case let .success(response) = result {
            print("Autocomplete suggestions for query: \(response.summary.query)")
            response.results.forEach { result in
                result.segments.forEach { segment in
                    switch segment {
                    case .brand(let brand):
                        print("\(brand.brand.name) - brand")
                    case .poiCategory(let category):
                        print("\(category.poiCategory.name) - category")
                    case .plainText(let text):
                        print("\(text.plainText) - text")
                    @unknown default:
                        print("unknown")
                    }
                }
            }
        }
    }
    
     // Prints:
     //   Autocomplete suggestions for query: mar
     //   Market - category
     //   Marqt - brand
     //   Marina - category
     //   Marriott - brand
    
    

    Declaration

    Swift

    func autocomplete(options: AutocompleteOptions, completion: @escaping (Result<AutocompleteResponse, Error>) -> ())

    Parameters

    options

    The AutocompleteOptions structure to make the results more relevant.

    completion

    The completion closure is called after the response to the request has been processed. If no errors occurred, AutocompleteResponse contains proposed autocomplete elements, that can be used to implement an input field with the autocomplete feature.

  • This method provides a full list of POI categories and subcategories together with their translations and synonyms. Additional POI category parameters like language can be taken into account using the POICategoryOptions.

    Declaration

    Swift

    func requestPOICategories(options: POICategoryOptions, completion: @escaping (Result<POICategoryResponse, Error>) -> ())

    Parameters

    options

    The POICategoryOptions structure to limit the results.

    completion

    The completion closure is called after the response to the request has been processed. If no errors occurred, POICategoryResponse contains an array of categories and subcategories together with their translations and synonyms.

  • Provides detailed information about a POI based on its identifier (entityId).

    Declaration

    Swift

    func requestPOIDetails(
        options: POIDetailsOptions,
        completion: @escaping (Result<TomTomSDKSearch.POIDetailsResponse, Error>) -> ()
    )

    Parameters

    options

    Describes what POI Details data to request.

    completion

    The completion closure is called after the response to the request has been processed. If no errors occurred, PoiDetailsResponse contains the requested search result with POI info

  • The Geometry Data API returns sets of coordinates that represent the outline of a city, country, or land area. The method supports batch requests of up to 20 identifiers.

    Declaration

    Swift

    func requestGeometryData(options: GeometryDataOptions, completion: @escaping (Result<GeometryDataResponse, Error>) -> ())

    Parameters

    options

    Define geometries to request.

    completion

    Parameter completion: The completion closure is called after the response to the request has been processed. If no errors occurred, GeometryDataResponse contains an array of geometries data structures

  • Asynchronously sends a feedback event for the search.

    Important

    This is a Public Preview API. It may be changed or removed at any time.

    Declaration

    Swift

    func sendFeedback(feedbackEvent: FeedbackEvent, completion: ((Error?) -> ())?)

    Parameters

    feedbackEvent

    The feedback event.

    completion

    If an error occurred, completion is called with error.