mirror of
https://github.com/jlengrand/leaflet-geosearch.git
synced 2026-03-10 08:31:26 +00:00
feat: add Pelias provider (#295)
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
LocationIQProvider,
|
||||
OpenCageProvider,
|
||||
OpenStreetMapProvider,
|
||||
PeliasProvider,
|
||||
GeoApiFrProvider,
|
||||
} from 'leaflet-geosearch';
|
||||
|
||||
@@ -37,5 +38,7 @@ export default {
|
||||
|
||||
OpenStreetMap: new OpenStreetMapProvider(),
|
||||
|
||||
Pelias: new PeliasProvider(),
|
||||
|
||||
GeoApiFr: new GeoApiFrProvider(),
|
||||
};
|
||||
|
||||
72
docs/providers/pelias.mdx
Normal file
72
docs/providers/pelias.mdx
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
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.
|
||||
|
||||
<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
|
||||
Reference in New Issue
Block a user