Class: Autocomplete

cercaliagl.service/Autocomplete


Javascript ES5

const autocopmplete = new cercaliagl.service.Autocomplete({ ... });

This class add suggest autocomplete funcionality to an input for search addresses.
The input must be an empty div HTML element and it can be passed by id (autocompleteId option) or by DOM Element reference.
In the creation of this service, the div element will contains more DOM elements inside.

This service allow to apply filters to search inside countries, regions, subregions, municipalities, localities, etc. By default it searches for addresses, localities, postal codes and POIs. But this behaviour can be modified.

You can see all constructor options to modify this functionality. Finally it is mandatory to assign a callbackFunction which will be called when an address is selected.

Example usage:

const autocompleteService = new cercalia.service.Autocomplete({
  element: document.getElementById('autocomplete'),
  label: 'Search address example',
  floatingLabel: true,
  callbackFunction: (data) => {
    document.querySelector('#response').innerHTML = JSON.stringify(data, null, 2);
  },
});

new Autocomplete(options)

Name Type Description
options

Options

Name Type Description
callbackSuggestionsFunction function

Callback function when suggestions changed.

callbackFunction function

Callback function when selecting autocomplete element.

onInputFunction function | undefined

Callback function when on input event.

autocompleteId string

<div id="xxxx"> element ID where create add autocomplete functionality.

element Element

Element

placeholder string

Input placeholder. If not specified default is Address.

hnrt boolean

Apply a tolerance in house number ranges. Cercalia suggest search prioritize address that contains the house numbers searched. This parameters lets you apply a tolerance in the house numbers ranges available in the database (+/-50 numbers in general, and +/- 500 in USA), in order to avoid some gaps in this database. Values:
false: don’t apply. Default value
true: apply

label string

Label text for placeholder

maxCandidates number

Max candidates to show. Default 5.

searchInsideCountry string | null

Autocomplete search inside a country (3 characters ISO code), for exemple: ESP. Default value null (all countries).

searchInsideRegion string | null

Autocomplete search inside a region (Country ISO code + Region code), for exemple: ESPMAD or several regions, for example: ESPCAT,ESPMAD,ESPVAL. Please, contact with Nexus if you need to know region codes.

searchInsideProvince string | null

Autocomplete search inside a province (Country ISO code + Province code), for exemple: ESP08 (Barcelona), ESP17 (Girona) or several provinces, for example: ESP08,ESP17. Please, contact with Nexus if you need to know province codes.

searchInsideMunicipality string | null

Autocomplete search inside a municipality (Country ISO code + Province code), for exemple: ESP410917 (Sevilla), ESP502973 (Zaragoza) or several municipality, for example: ESP08,ESP17. Please, contact with Nexus if you need to know municipality codes.

searchInsideLocality string | null

Autocomplete search inside a locality for exemple: ESP17240205565747 (Barcelona), ESP17240205565484 (Badalona) or several localities, for example: ESP17240205565747,ESP17240205565484. Please, contact with Nexus if you need to know locality codes.

searchClosestHouseNumber boolean

Search closest real house number in suggest. Default: false.

searchFilterEntity string

Set filter by municipality / region / subregion / country (by entity code). You can mix that entities. Examples:
ESP170792,ESPCAT,ES08
SolrItem ESP,ESP08,ESP17,PRT,AND.

searchPriorityEntity string | Array.<string>

Set priority municipality / region / subregion / country (by entity code). This filter, prioritizes the results that are in the specified regions above the other candidates, but does not eliminate the results from other regions or countries. This filter can be combined with the "csr" filter for maximum results filter beyond the priority. Example: ESPVAL. In case you need to prioritize candidates in the list of preferred regions, the regions may be separated by parameters according to priority level: first element: maximum priority, second element: second level priority, etc
Examples:
['ESP170792', 'AND', 'ESP,FRA'].
['ESPCAT', 'ESPMAD', 'PRT,AND,FRA'].

searchPreferredEntity string | Array.<string>

Set preferred municipality / region / subregion / country (by entity code). This filter, prioritizes the results that are in the specified regions above the other candidates, but does not eliminate the results from other regions or countries. This filter can be combined with the "csr" filter for maximum results filter beyond the preferred. Example: ESPVAL. In case you need to prioritize candidates in the list of preferred regions, the regions may be separated by parameters according to priority level: first element: maximum priority, second element: second level priority, etc
Examples:

poiCategories string

Set POI categories. If not specified Cercalia will return default POI categories. Categories. For example: ['C012', 'D00CAM', 'C027', 'C016'] ['ESP170792', 'AND', 'ESP,FRA'].
['ESPCAT', 'ESPMAD', 'PRT,AND,FRA'].

floatingLabel boolean

Floating label for input UI element. Default false.

lang string | Array.<string>

Set preferred lang to return suggestions. Default null.

Extends

  • module:cercaliagl/service/Service~Service

Methods

Close autocomplete div.

getElement(){Element}

Get autocomplete DOM element reference. This should be <div /> element.

Returns:
Autocomplete element.

Get Geocoding JSON server response. It returns null if address is not selected.

Returns:
JSON server response.

getValue(){string}

Current input value

Returns:
Input value

setCallbackFunction(callbackFn)

Assign a callback function after selecting a candidate from the suggest list

Name Type Description
callbackFn function

Callback Function.

setCallbackSuggestionsFunction_(callbackFn)

Assign a callback function after suggestions changed

Name Type Description
callbackFn function

Callback Function.

setPoiCategories(categories)

Set POI categories. If not specified Cercalia will return default POI categories.

Name Type Description
categories string | Array.<string> | null

Categories. For example: ['C012', 'D00CAM', 'C027', 'C016']

setSearchCoordinateReference(lonLat)

Filter results by proximity to a point (coordinate). It is a restrictive filter (only returns candidates within the radius), prioritizing results based on proximity to the search point. searchInsideRadius option must be provided. Use setSearchCoordinateReference method.

Name Type Description
lonLat cercalia.LonLat | null

Coordinate reference. null value deactive behaviour.

setSearchFilterType(type)

Search within type specified. Possible values are: st (streets), ct (locality), p (pois), all|null. It is possible specify more than one value. Example : st,ct

Name Type Description
type string | Array.<string> | null

Type or array of types. For example: ['ct','pois','st'].

setSearchInsideCountry(countriesId)

Search inside a country. For example: 'ESP,FRA,GBR' or ['ESP','FRA','GBR']

Name Type Description
countriesId string | Array.<string> | null

Country or array of countries id.

setSearchInsideLocality(localityId)

Search inside a locality. For example: ESP17240205544993 (Vallecas), ESP17240205545872 (La Barceloneta), etc..

Name Type Description
localityId string | Array.<string> | null

Locality or array of localities id.

setSearchInsideMunicipality(municipalityId)

Search inside a municipality. For example: ESP280796 (Madrid), ESP080193 (Barcelona), etc..

Name Type Description
municipalityId string | Array.<string> | null

Municipality id or array of municipality id.

setSearchInsideProvince(provinceId)

Search inside a region. For example: ESP17 (Girona), ESP08 (Barcelona) etc..

Name Type Description
provinceId string | Array.<string> | null

Region or array of regions id.

setSearchInsideRadius(radius)

Set radius for geographic search. Complementary option for option searchCoordinateReference.

Name Type Description
radius number | null

Radius

setSearchInsideRegion(regionsId)

Search inside a region. For example: ESPMAD (Comunidad de Madrid), ESPCAT (Catalunya), etc..

Name Type Description
regionsId string | Array.<string> | null

Region or array of regions id.

setValue(text, openSuggestions)

Change value of autocomplete and optionally open suggestions.

Name Type Description
text string

Text

openSuggestions boolean (defaults to false)

Open suggest after change input value. Default false