1.0.3 • Published 5 years ago

@heyimlance/react-mapbox-gl-geocoder v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

react-mapbox-gl-geocoder

Simple react autocomplete for geocoding locations using Mapbox API. You can use it with react-map-gl to pan to found locations.

NPM JavaScript Style Guide

Install

npm install --save react-mapbox-gl-geocoder
# or
yarn add react-mapbox-gl-geocoder

Usage

import React, {Component} from 'react'
import Geocoder from 'react-mapbox-gl-geocoder'
import ReactMapGL from 'react-map-gl'
import './index.css'

const mapAccess = {
    mapboxApiAccessToken: process.env.REACT_APP_MAPBOX_API_ACCESS_TOKEN
}

const mapStyle = {
    width: '100%',
    height: 600
}

const queryParams = {
    country: 'us'
}

class App extends Component {
    state = {
        viewport: {}
    }

    onSelected = (viewport, item) => {
        this.setState({viewport});
        console.log('Selected: ', item)
    }

    render() {
        const {viewport} = this.state

        return (
            <div>
                <Geocoder
                    {...mapAccess} onSelected={this.onSelected} viewport={viewport} hideOnSelect={true}
                    queryParams={queryParams}
                />

                <ReactMapGL
                    {...mapAccess} {...viewport} {...mapStyle}
                    onViewportChange={(newViewport) => this.setState({viewport: newViewport})}
                />
            </div>
        )
    }
}

Props

NameTypeDescriptionDefault
mapboxApiAccessToken(required) stringMapbox Access Token-
timeoutintDebounce between pressing the key and quering the results300
viewportobjectMap Viewport-
onSelected(required) function(viewport, item)Receives selected item and the viewport to set for the selected item-
transitionDurationintDuration of the smooth transition0
hideOnSelectboolWhether to hide results on select or notfalse
pointZoomintZoom to set if a specific location (without bbox) is selected16
formatItemfunction(item)Function used for formatting resultsitem => item.place_name
classNamestringClass to add to the top component-
queryParamsobjectQuery parameters to use when searching of the results, you can see available options here-
limitintLimit of the results5
localGeocoderfunction(queryString)Function to supplement local results to geocoder-

Styling

This component does NOT come with any styles. You can style it yourself by using classes:

Class nameDescription
.react-geocodercomponent wrapper class
.react-geocoder-resultsresults wrapper class
.react-geocoder-itemsingle result class

Replacing components

You can even supplement your own components:

Property namePassed PropertiesProperties description
inputComponentonChangeFunction to call when the text changes
itemComponentitem, onClick, childrenchildren is item formatted to display

License

MIT © groinder