mirror of
https://github.com/jlengrand/leaflet-geosearch.git
synced 2026-03-10 08:31:26 +00:00
75 lines
2.1 KiB
Plaintext
75 lines
2.1 KiB
Plaintext
---
|
|
name: Pelias
|
|
menu: Providers
|
|
route: /providers/pelias
|
|
---
|
|
|
|
import Playground from '../components/Playground';
|
|
import Map from '../components/Map';
|
|
|
|
# Pelias Provider
|
|
|
|
[Pelias][1] is an open-source geocoder powered completely by open data, available freely to everyone.
|
|
|
|
In order to use this provider you'll need to have your own Pelias server running.
|
|
|
|
The [Docker][3] repository provides the quickest path to running your own server.
|
|
|
|
See the [Pelias documentation][2] for more detailed information about the available endpoints and query parameters.
|
|
|
|
Looking for a hosted version of Pelias? check out the Geocode Earth provider.
|
|
|
|
<Playground>
|
|
<Map provider="Pelias" />
|
|
</Playground>
|
|
|
|
```js
|
|
import { PeliasProvider } from 'leaflet-geosearch';
|
|
|
|
// Pelias servers are self-hosted so you'll need to configure the 'options.host' string
|
|
// to identify where requests to your running pelias/api server instance should be sent.
|
|
// note: you SHOULD include the scheme, domain and port but NOT any path or parameters.
|
|
const provider = new PeliasProvider({ host: 'http://localhost:4000' });
|
|
|
|
// add to leaflet
|
|
import { GeoSearchControl } from 'leaflet-geosearch';
|
|
|
|
map.addControl(
|
|
new GeoSearchControl({
|
|
provider,
|
|
}),
|
|
);
|
|
```
|
|
|
|
## Optional parameters
|
|
|
|
Pelias supports a wide range of number of [optional parameters][4] which can be applied to every request using the `params` object:
|
|
|
|
```js
|
|
const provider = new PeliasProvider({
|
|
params: {
|
|
size: 5, // limit the total number of results returned
|
|
lang: 'nl', // render results in Dutch
|
|
'boundary.country': 'NL', // limit search results to the Netherlands
|
|
layers: 'address,street', // limmit which layers are queried
|
|
},
|
|
});
|
|
```
|
|
|
|
Or individually on a per-request basis:
|
|
|
|
```js
|
|
const results = await provider.search({
|
|
query: {
|
|
text: 'example',
|
|
'focus.point.lat': 1.11, // score results nearer to the focus point higher
|
|
'focus.point.lon': 2.22,
|
|
},
|
|
});
|
|
```
|
|
|
|
[1]: https://github.com/pelias/pelias
|
|
[2]: https://github.com/pelias/documentation
|
|
[3]: https://github.com/pelias/docker
|
|
[4]: https://github.com/pelias/documentation/blob/master/autocomplete.md
|