Skip to content
This repository has been archived by the owner on Sep 5, 2023. It is now read-only.
/ geocoder Public archive

MapTilre JavaScript geocoding client (deprecated)

Notifications You must be signed in to change notification settings

maptiler/geocoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MapTiler Geocoder

New version is at https://github.com/maptiler/maptiler-geocoding-control


Since 2023, this repository is deprecated. We moved the development effort to our MapTiler Geocoding control for MapLibre and Leaflet project. For more information also check the npm.js page.


JavaScript component for geographical search provided as part of MapTiler Cloud.

Usage example

Autocomplete

<html>
  <head>
    <script src="https://cdn.maptiler.com/maptiler-geocoder/v1.1.0/maptiler-geocoder.js"></script>
    <link href="https://cdn.maptiler.com/maptiler-geocoder/v1.1.0/maptiler-geocoder.css" rel="stylesheet" />
  </head>
  <body>
    <input id="search" type="text" />
    <script>
      var geocoder = new maptiler.Geocoder({
        input: 'search', // id of input element
        key: 'get_your_own_key'
      });
      geocoder.on('select', function(item) {
        console.log('Selected', item);
      });
    </script>
  </body>
</html>

API

var geocoder = new maptiler.Geocoder({
  key: 'get_your_own_key'
});

geocoder.geocode('Zurich')
.then(function(results) {
  console.log(results.features[0]);
});

Note: You can get your own keys for free at https://cloud.maptiler.com.

API

maptiler.Geocoder

Emits: hover, select

Constructor

new Geocoder(options)

Param Type Default Description
options Object
options.key string Access key from https://cloud.maptiler.com/
[options.input] string | HTMLInputElement | null null If no input is provided, the autocomplete will not be initiated, but the rest of the methods can still be used. Most notably .geocode(query).
[options.autocompleteWaitMs] number 500 Number of milliseconds to wait before autocompleting. At most one request will be sent within this timeframe. Useful if you want to wait for the user to finish typing. Does not have any effect if input is not specified.
[options.language] string | Array.<string> null Specifies language preference e.g. en,de, null to disable.
[options.bounds] Array.<number> null Search only within the specified bounds [minx, miny, maxx, maxy], null to disable.
[options.proximity] Array.<number> null Prefer results closer to the specified point [lon, lat], null to disable.

Methods

geocoder.setLanguage(language)

Param Type
language string | Array.<string> | null

geocoder.setBounds(bbox)

Param Type
bbox Array.<number> | null

geocoder.setProximity(point)

Param Type
point Array.<number> | null

geocoder.getQueryUrl(query) ⇒ string

Param Type
query string

geocoder.geocode(query) ⇒ Promise.<GeocodingResult>

Performs the search with the given query and currently set geocoder options.

Param Type
query string

Events

The Geocoder inherits from EventEmitter, so you can use the related methods. Most notably geocoder.on (see EventEmitter#on) to listen for events:

geocoder.on('select', function(item) {
  console.log('Selected', item);
});

Possible event types:

select

Emitted when user selects an item.

hover

Emitted when user hovers over and item in the autocomplete list.

Types

GeocodingResult : GeoJSONFeatureCollection

The result of the geocoding is always a GeoJSON with individual items in a FeatureCollection at the root (features property).

Properties

Name Type
features Array.<GeocodingResultItem>

GeocodingResultItem : GeoJSONFeature