Git Product home page Git Product logo

react-mapbox-gl-geocoder's Introduction

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

Name Type Description Default
mapboxApiAccessToken (required) string Mapbox Access Token -
timeout int Debounce between pressing the key and quering the results 300
viewport object Map Viewport -
onSelected (required) function(viewport, item) Receives selected item and the viewport to set for the selected item -
transitionDuration int Duration of the smooth transition 0
hideOnSelect bool Whether to hide results on select or not false
pointZoom int Zoom to set if a specific location (without bbox) is selected 16
formatItem function(item) Function used for formatting results item => item.place_name
className string Class to add to the top component -
queryParams object Query parameters to use when searching of the results, you can see available options here -
limit int Limit of the results 5
localGeocoder function(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 name Description
.react-geocoder component wrapper class
.react-geocoder-results results wrapper class
.react-geocoder-item single result class

Replacing components

You can even supplement your own components:

Property name Passed Properties Properties description
inputComponent onChange Function to call when the text changes
itemComponent item, onClick, children children is item formatted to display

License

MIT © groinder

react-mapbox-gl-geocoder's People

Contributors

groinder avatar

Watchers

Ben Bowler avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.