Limit geocoder results to a named region

Use the mapbox-gl-geocoder control to search for places using Mapbox Geocoding API limiting results to a region.

<!DOCTYPE html>
    <meta charset='utf-8' />
    <title>Limit geocoder results to a named region</title>
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <script src=''></script>
    <link href='' rel='stylesheet' />
        body { margin:0; padding:0; }
        #map { position:absolute; top:0; bottom:0; width:100%; }

<script src=''></script>
<link rel='stylesheet' href='' type='text/css' />
<div id='map'></div>

mapboxgl.accessToken = '<your access token here>';
var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v9',
    center: [146.359, -32.648],
    zoom: 4

map.addControl(new MapboxGeocoder({
    accessToken: mapboxgl.accessToken,

    // limit results to Australia
    country: 'au',

    // further limit results to the geographic bounds representing the region of
    // New South Wales
    bbox: [139.965, -38.030, 155.258, -27.839],

    // apply a client side filter to further limit results to those strictly within
    // the New South Wales region
    filter: function (item) {
        // returns true if item contains New South Wales region
        return (i) {
            // id is in the form {index}.{id} per
            // this example attempts to find the `region` named `New South Wales`
            return ('.').shift() === 'region' && i.text === 'New South Wales');
        }).reduce(function (acc, cur) {
            return acc || cur;

Copy example