Show city boundaries with Leaflet

Estimated reading time: 1 minute

This example uses JawgPlaces.Leaflet to initialize the Jawg Places Leaflet Plugin on a webpage with a Leaflet map. It will return only administrative places such as cities, states and countries. When you will select a city, it will display its boundaries, this is the purpose of this example. Let's try with Paris, New York, London and Texas.

Checkout all options available on Jawg Places JS for Leaflet on our type documentation.

💡 Don't forget to call either map.addControl(jawgPlaces) or jawgPlaces.attachMap(map) to initialize and connect the input to the map.

The value <YOUR_ACCESS_TOKEN> in the <script> tag must be replaced by your own access token from the Jawg Lab.

View on GitHub

<html>
  <head>
    <script src="https://api.jawg.io/libraries/jawg-places@latest/jawg-places.js?access-token=<YOUR_ACCESS_TOKEN>"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.css" />
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.js"></script>
  </head>
  <body>
    <div id="my-map" style="height: 100%; min-height: 500px"></div>
    <script>
      const map = new L.Map('my-map').setView([0, 0], 2);
      L.tileLayer(`https://tile.jawg.io/jawg-sunny/{z}/{x}/{y}.png?access-token=<YOUR_ACCESS_TOKEN>`, {
        attribution:
          '<a href="http://jawg.io" title="Tiles Courtesy of Jawg Maps" target="_blank" class="jawg-attrib">&copy; <b>Jawg</b>Maps</a> | <a href="https://www.openstreetmap.org/copyright" title="OpenStreetMap is open data licensed under ODbL" target="_blank" class="osm-attrib">&copy; OSM contributors</a>',
        maxZoom: 22,
      }).addTo(map);
      map.addControl(
        new JawgPlaces.Leaflet({
          searchOnTyping: true,
          adminArea: {
            fillColor: 'rgba(172,59,246, 0.1)',
            outlineColor: 'rgb(172,59,246)',
            show: true,
          },
          sources: 'wof',
          L: L,
        }),
      );
    </script>
  </body>
</html>