Display geometry using place details with Leaflet
Estimated reading time: 1 minuteThis example uses JawgPlaces.Leaflet
to initialize a Jawg Places Leaflet Plugin on a webpage with a Leaflet map. It will allow you to perform Place Details requests and get the original geometry (Polygon or Point).
When you are requesting geometries, you can search only one location.
Checkout all options available on Jawg Places JS for Leaflet on our type documentation.
💡 Don't forget to call either
map.addControl(jawgPlaces)
orjawgPlaces.attachMap(map)
to initialize and connect the input to the map.
You can try with these examples:
openstreetmap:island:relation/966358 (Corfu, II, Greece)
whosonfirst:locality:102031307 (Tokyo, Chiyoda, Japan)
osm:venue:node/4616798278 (Jawg Maps, Bagneux, France)
The value <YOUR_ACCESS_TOKEN>
in the <script>
tag must be replaced by your own access token from the Jawg Lab.
<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">© <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">© OSM contributors</a>',
maxZoom: 22,
}).addTo(map);
map.addControl(
new JawgPlaces.Leaflet({
searchOnTyping: true,
place: {
enabled: true,
// Geometries as a string
geometries: 'source',
// Geometries as a function, can be changed dynamically
// geometries: () => 'source',
fillColor: 'rgba(172,59,246, 0.1)',
outlineColor: 'rgb(172,59,246)',
},
L: L,
}),
);
</script>
</body>
</html>