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

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

    Parameters

    options

    The SearchOptions structure to limit the results.

    completion

    The completion closure is called after the request response is processed. If no errors occurred, SearchResponse contains an array of search results and summary information. If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.

  • 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

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

    Parameters

    options

    The AutocompleteOptions structure to make the results more relevant.

    completion

    The completion closure is called after the response to the request is processed. If no errors occurred, AutocompleteResponse contains proposed autocomplete elements, that can be used to implement an input field with the autocomplete feature. If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.

  • 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

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

    Parameters

    options

    The POICategoryOptions structure to limit the results.

    completion

    The completion closure is called after the response to the request is processed. If no errors occurred, POICategoryResponse contains an array of categories and subcategories together with their translations and synonyms. If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.

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

    Declaration

    Swift

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

    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 If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.

  • 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

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

    Parameters

    options

    Define geometries to request.

    completion

    Parameter completion: The completion closure is called after the response to the request is processed. If no errors occurred, GeometryDataResponse contains an array of geometries data structure. If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.

  • Asynchronously sends a feedback event for the search.

    Declaration

    Swift

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

    Parameters

    feedbackEvent

    The feedback event.

    completion

    If an error occurred, completion is called with error. If cancellation is triggered, the completion returns a cancellation error. Sometimes, the completion may return with other work before acknowledging the cancellation.

    Return Value

    a Cancellable instance that provides control for request cancellation.